Linux性能分析——TOP命令详解
Linux性能分析——TOP命令详解
1、Top命令介绍
Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况。
这个命令对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容使用情况等信息。
2、Top命令使用
Top的命令介绍如下:
top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]
常用的Top指令有:
top:启动top命令
top -c:显示完整的命令行
top -b:以批处理模式显示程序信息
top -S:以累积模式显示程序信息
top -n 2:表示更新两次后终止更新显示
top -d 3:设置信息更新周期为3秒
top -p 139:显示进程号为139的进程信息,CPU、内存占用率等
top -n 10:显示更新十次后退出
除此之外,在top进程运行过程中,两个最重要的功能是查看帮助(h 或 ?)和退出(q 或 Ctrl+C)。
3、Top信息详解
top展示界面由从上到下3部分组成
- 概览区域
- 表头
- 任务区域
- 还有一个输入/消息行,位于概览区域和表头之间。
image-20230811143742616
3.1 概览区详解
top - 14:46:08 up 5:46, 1 user, load average: 0.00, 0.00, 0.00
- 程序或者窗口的名称:
top - 当前时间和系统的启动时间:
14:46:08 up 5:46 - 总共的用户数量:
1 user - 过去1、5和15分钟的系统平均负载:
load average: 0.00, 0.00, 0.00
Tasks: 290 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
这两行显示了任务数量和CPU状态
- 第一行该信息对
Task进行分类,包括running、sleeping、stopped、zombie四类,显示了系统中正在运行的任务的状态统计信息。具体来说,这里有291个任务总数,其中有1个任务正在运行,212个任务正在睡眠,0个任务已停止,0个任务为僵尸进程。 - 第二行显示
CPU的状态百分比%Cpu(s): CPU使用率的统计信息。us (user): 用户空间进程占用CPU的时间百分比。sy (system): 内核空间进程占用CPU的时间百分比。ni (nice): 用户进程以优先级调整过的占用CPU的时间百分比(通常不会有这个值)。id (idle): CPU空闲的时间百分比。wa (IO-wait): CPU等待I/O操作的时间百分比。hi (hardware interrupt): CPU处理硬件中断的时间百分比。si (software interrupt): CPU处理软件中断的时间百分比。st: 被虚拟化环境偷取的时间百分比(通常不会有这个值)。
KiB Mem : 3994720 total, 525876 free, 595492 used, 2873352 buff/cache
KiB Swap: 2097148 total, 2096624 free, 524 used. 3114400 avail Mem
这两行表示内存的使用情况
- 第一行表示物理内存,分为
total、free、used、buff/cache - 第二行表示虚拟内存,分为
total、free、used、avail
默认单位是
KiB,使用按键E可以切换为MiB、GiB、TiB、PiB、EiB
KiB = kibibyte = 1024 bytes
MiB = mebibyte = 1024 KiB = 1,048,576 bytes
GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes
TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes
PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes
EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes
更多干货可见:高级工程师聚集地,助力大家更上一层楼!
3.2 任务区
任务区是按照列的形式来显示的,并且有多个字段可以用来查看进程的状态信息。
3.2.1 任务字段介绍
%CPU:CPU Usage,自上次屏幕更新以来任务占用的CPU时间份额,表示为总CPU时间的百分比。%MEM:Memory Usage,进程使用的物理内存百分比CODE:Code Size,可执行代码占用的物理内存量COMMAND:Command Name or Command Line,用于显示输入的命令行或者程序名称PID:Process Id,任务独立的ID,即进程IDPPID:Parent Process Id,父进程IDUID:User Id,任务所有者的用户IDUSER:User Name,用户名RUSER:Real User Name,实际的用户名TTY:Controlling Tty,控制终端名称TIME:CPU TIME,该任务CPU总共运行的时间TIME+:同TIME,其粒度更细OOMa:Out of Memory Adjustment Factor,内存溢出调整机制,这个字段会被增加到当前内存溢出分数中,来决定什么任务会被杀掉,范围是-1000到+1000。OOMs:Out of Memory Score,内存溢出分数,这个字段是用来选择当内存耗尽时杀掉的任务,范围是0到+1000。0的意思是绝不杀掉,1000的意思是总是杀掉。S:Process Status,表示进程状态信息D: 不可中断休眠I:空闲R:运行中S:休眠T:被任务控制信号停止t:在跟踪期间被调试器停止Z:僵尸
相关属性有很多,可以使用
man top查看,这里先列举这些。
3.2.2 字段管理
我们输入top后,默认只显示一部分属性信息,我们可以自行管理想要的属性信息。
我们输入F或者f,进入字段管理功能,用于选择想要的字段信息
| 按键 | 功能 |
|---|---|
↑、↓ |
光标上下移动选择 |
空格、d |
切换 |
s |
设置为排序依据字段 |
a、w |
在4种窗口中切换:1.默认,2.任务,3.内存,4.用户 |
Esc键、q |
退出当前窗口 |
4、交互命令详解
top的功能很多,基本能够查看进程的各种状态信息,其中还有一些交互式的命令,方便我们更好的查看系统状态。
在
top主界面中,我们输入下面的命令
| 命令 | 功能 |
|---|---|
h、? |
帮助信息查看,涵盖所有的快捷键 |
| 空格、回车按键 | 手动刷新界面信息 |
q、ESC按键 |
退出 |
B |
粗体显示功能 |
d、s |
改变间隔时间 |
E、e |
切换内存显示的单位,从KiB到EiB |
g |
然后输入1-4其中一个数字,选择哪种窗口(1.默认,2.任务,3.内存,4.用户) |
H |
进程、线程显示切换 |
k |
输入PID信息,杀掉一个任务 |
Z |
改变配色 |
上面介绍了一些比较常见的交互式命令,还有更多需要你去探索哦!

Linux性能分析——TOP命令详解
1、Top命令介绍
Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况。
这个命令对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容使用情况等信息。
2、Top命令使用
Top的命令介绍如下:
top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]
常用的Top指令有:
top:启动top命令
top -c:显示完整的命令行
top -b:以批处理模式显示程序信息
top -S:以累积模式显示程序信息
top -n 2:表示更新两次后终止更新显示
top -d 3:设置信息更新周期为3秒
top -p 139:显示进程号为139的进程信息,CPU、内存占用率等
top -n 10:显示更新十次后退出
除此之外,在top进程运行过程中,两个最重要的功能是查看帮助(h 或 ?)和退出(q 或 Ctrl+C)。
3、Top信息详解
top展示界面由从上到下3部分组成
- 概览区域
- 表头
- 任务区域
- 还有一个输入/消息行,位于概览区域和表头之间。
image-20230811143742616
3.1 概览区详解
top - 14:46:08 up 5:46, 1 user, load average: 0.00, 0.00, 0.00
- 程序或者窗口的名称:
top - 当前时间和系统的启动时间:
14:46:08 up 5:46 - 总共的用户数量:
1 user - 过去1、5和15分钟的系统平均负载:
load average: 0.00, 0.00, 0.00
Tasks: 290 total, 1 running, 212 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
这两行显示了任务数量和CPU状态
- 第一行该信息对
Task进行分类,包括running、sleeping、stopped、zombie四类,显示了系统中正在运行的任务的状态统计信息。具体来说,这里有291个任务总数,其中有1个任务正在运行,212个任务正在睡眠,0个任务已停止,0个任务为僵尸进程。 - 第二行显示
CPU的状态百分比%Cpu(s): CPU使用率的统计信息。us (user): 用户空间进程占用CPU的时间百分比。sy (system): 内核空间进程占用CPU的时间百分比。ni (nice): 用户进程以优先级调整过的占用CPU的时间百分比(通常不会有这个值)。id (idle): CPU空闲的时间百分比。wa (IO-wait): CPU等待I/O操作的时间百分比。hi (hardware interrupt): CPU处理硬件中断的时间百分比。si (software interrupt): CPU处理软件中断的时间百分比。st: 被虚拟化环境偷取的时间百分比(通常不会有这个值)。
KiB Mem : 3994720 total, 525876 free, 595492 used, 2873352 buff/cache
KiB Swap: 2097148 total, 2096624 free, 524 used. 3114400 avail Mem
这两行表示内存的使用情况
- 第一行表示物理内存,分为
total、free、used、buff/cache - 第二行表示虚拟内存,分为
total、free、used、avail
默认单位是
KiB,使用按键E可以切换为MiB、GiB、TiB、PiB、EiB
KiB = kibibyte = 1024 bytes
MiB = mebibyte = 1024 KiB = 1,048,576 bytes
GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes
TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes
PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes
EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes
更多干货可见:高级工程师聚集地,助力大家更上一层楼!
3.2 任务区
任务区是按照列的形式来显示的,并且有多个字段可以用来查看进程的状态信息。
3.2.1 任务字段介绍
%CPU:CPU Usage,自上次屏幕更新以来任务占用的CPU时间份额,表示为总CPU时间的百分比。%MEM:Memory Usage,进程使用的物理内存百分比CODE:Code Size,可执行代码占用的物理内存量COMMAND:Command Name or Command Line,用于显示输入的命令行或者程序名称PID:Process Id,任务独立的ID,即进程IDPPID:Parent Process Id,父进程IDUID:User Id,任务所有者的用户IDUSER:User Name,用户名RUSER:Real User Name,实际的用户名TTY:Controlling Tty,控制终端名称TIME:CPU TIME,该任务CPU总共运行的时间TIME+:同TIME,其粒度更细OOMa:Out of Memory Adjustment Factor,内存溢出调整机制,这个字段会被增加到当前内存溢出分数中,来决定什么任务会被杀掉,范围是-1000到+1000。OOMs:Out of Memory Score,内存溢出分数,这个字段是用来选择当内存耗尽时杀掉的任务,范围是0到+1000。0的意思是绝不杀掉,1000的意思是总是杀掉。S:Process Status,表示进程状态信息D: 不可中断休眠I:空闲R:运行中S:休眠T:被任务控制信号停止t:在跟踪期间被调试器停止Z:僵尸
相关属性有很多,可以使用
man top查看,这里先列举这些。
3.2.2 字段管理
我们输入top后,默认只显示一部分属性信息,我们可以自行管理想要的属性信息。
我们输入F或者f,进入字段管理功能,用于选择想要的字段信息
| 按键 | 功能 |
|---|---|
↑、↓ |
光标上下移动选择 |
空格、d |
切换 |
s |
设置为排序依据字段 |
a、w |
在4种窗口中切换:1.默认,2.任务,3.内存,4.用户 |
Esc键、q |
退出当前窗口 |
4、交互命令详解
top的功能很多,基本能够查看进程的各种状态信息,其中还有一些交互式的命令,方便我们更好的查看系统状态。
在
top主界面中,我们输入下面的命令
| 命令 | 功能 |
|---|---|
h、? |
帮助信息查看,涵盖所有的快捷键 |
| 空格、回车按键 | 手动刷新界面信息 |
q、ESC按键 |
退出 |
B |
粗体显示功能 |
d、s |
改变间隔时间 |
E、e |
切换内存显示的单位,从KiB到EiB |
g |
然后输入1-4其中一个数字,选择哪种窗口(1.默认,2.任务,3.内存,4.用户) |
H |
进程、线程显示切换 |
k |
输入PID信息,杀掉一个任务 |
Z |
改变配色 |
上面介绍了一些比较常见的交互式命令,还有更多需要你去探索哦!
img
Linux性能分析——TOP命令详解的更多相关文章
- Linux下top命令详解
Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...
- Linux上的free命令详解、swap机制
Linux上的free命令详解 解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free ...
- LINUX经常使用的命令详解
LINUX经常使用的命令详解 源地址:http://blog.itpub.net/29065182/viewspace-1189162/ 1.man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ...
- Top 命令详解
Top 命令详解 先感受一下top命令的执行结果吧!哈哈-- top - 17:32:34 up 3 days, 8:04, 5 users, load average: 0.09, 0.12, 0. ...
- Linux CAT与ECHO命令详解 <<EOF EOF
Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: .一次显示整个文件. $ cat filename .从键盘 ...
- [r]Ubuntu Linux系统下apt-get命令详解
Ubuntu Linux系统下apt-get命令详解(via|via) 常用的APT命令参数: apt-cache search package 搜索包 apt-cache show package ...
- Linux CAT与ECHO命令详解
Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从 ...
- (转)Linux: dirname、basename命令详解
Linux: dirname.basename命令详解 原文:http://blog.sina.com.cn/s/blog_3f63916f010143vo.html 一.dirname指令 1.功能 ...
- Linux 性能分析 工具命令
背景知识:具备背景知识是分析性能问题时需要了解的.比如硬件 cache:再比如操作系统内核.应用程序的行为细节往往是和这些东西互相牵扯的,这些底层的东西会以意想不到的方式影响应用程序的性能,比如某些程 ...
- Linux下面的yum命令详解
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...
随机推荐
- Scrapy-settings.py常规配置
# Scrapy settings for scrapy_demo project # # For simplicity, this file contains only settings consi ...
- python tkinter 使用(六)
python tkinter 使用(六) 本文主要讲述tkinter中进度条的使用. 1:确定的进度条 progressbar = tkinter.ttk.Progressbar(root, mode ...
- MES喷码机联动:MES实时下发设备生产参数及信息,实现从上层系统控制设备输出
随着工厂数字化的不断转型,设备单机工作已逐渐无法满足工业工厂互联网信息化数字化升级需求,从上层工单拉动设备生产参数的变化以及信息输出已经成为必然趋势. 开发工具:C# WPF 数据库:sqlite3 ...
- 前端布局flex从入门到入土
前端布局flex从入门到入土 作为一个后端,谈不上多会前端,但是一些常见的布局都可以做到,例如flex布局.推荐菜鸟教程的布局:https://www.runoob.com/w3cnote/flex- ...
- FlinkSQL实战开发
FlinkSQL实战开发 1.基础知识 FlinkSQL分为Table API和SQL API,是架构于Flink Core之上用SQL予以方便快捷地进行结构化数据处理的上层库. 工作流程 SQL和T ...
- C++标准库中copy算法的使用
目录 std::copy是C++标准库中的算法接口,主要用于两个容器间的复制,据说其效率要优于自己用for循环逐个复制.之前一直非常混淆其中的用法,这里总结了几个例子如下: #include < ...
- 干货分享丨轻松玩转 Huawei LiteOS 传感框架
摘要:LiteOS传感框架将物联网终端设备上不同类型的传感器统一管理,通过抽象不同类型传感器接口,屏蔽其硬件细节,做到"硬件"无关性,非常方便于物联网设备的开发.维护和功能扩展. ...
- 华为云联合多家单位正式开源云原生多沙箱容器运行时Kuasar
摘要:云原生多沙箱容器运行时Kuasar正式开源. 本文分享自华为云社区<重磅发布!华为云联合多家单位正式开源云原生多沙箱容器运行时Kuasar>,作者:云容器大未来. 当地时间4月21日 ...
- 华为云GaussDB践行数字化,护航证券保险高质量发展
摘要:华为云数据库解决方案架构师章哲在由先进数通与华为联合开展的"7+1"系列银行业数字化转型实践交流活动上围绕华为云GaussDB多年来的技术探索和应用实践进行了分享. 近日,由 ...
- 一文详解什么是可解释AI
摘要:本文带来什么是可解释AI,如何使用可解释AI能力来更好理解图片分类模型的预测结果,获取作为分类预测依据的关键特征区域,从而判断得到分类结果的合理性和正确性,加速模型调优. 1. 为什么需要可解释 ...