前言
输出结果: top - 11:29:59 up 45 min, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 87 total, 3 running, 84 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1016476 total, 522952 free, 276456 used, 217068 buff/cache KiB Swap: 839676 total, 839676 free, 0 used. 573936 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2695 jelly 20 0 157608 2164 1512 R 1.0 0.2 0:00.06 top 1603 mysql 20 0 1125372 195108 11132 S 0.3 19.2 0:01.98 mysqld 1 root 20 0 128104 6708 3956 S 0.0 0.7 0:01.92 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.13 ksoftirqd/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kworker/u2:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
在top基本视图中,第三行表示CPU状态信息;这里显示数据是所有CPU的平均值,如果想看每一个CPU的处理情况,按1即可;折叠,再次按1;
![Linux top命令详解]()
![Linux top命令详解]()
总结
上一篇《linux vmstat命令详解》中详细的总结了 vmstat 命令,对于 vmstat 命令来说,还有一个姊妹命令 top 。 top 命令在我们的日常运维中的出镜率应该是相当高的,它使用简单,输出的内容丰富,信息简单明了,是众多运维工作者工具库里的一大法宝,可见 top 命令的重要性了,这篇文章我将对 top 命令进行详细的总结。
命令详解top 显示系统当前的进程和其它状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说, top 命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序。
top 常用命令格式如下:
top [参数]命令参数说明如下:
-b 批处理 -c 显示完整的启动命令 -I 忽略失效过程 -s 保密模式 -S 累积模式 -H 线程模式 -i<时间> 设置间隔时间 -u<用户名> 指定用户名 -p<进程号> 指定进程 -n<次数> 循环显示的次数下面就对我们常用的使用方式进行详细的总结。
使用实例 输入命令: top输出结果: top - 11:29:59 up 45 min, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 87 total, 3 running, 84 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1016476 total, 522952 free, 276456 used, 217068 buff/cache KiB Swap: 839676 total, 839676 free, 0 used. 573936 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2695 jelly 20 0 157608 2164 1512 R 1.0 0.2 0:00.06 top 1603 mysql 20 0 1125372 195108 11132 S 0.3 19.2 0:01.98 mysqld 1 root 20 0 128104 6708 3956 S 0.0 0.7 0:01.92 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.13 ksoftirqd/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kworker/u2:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
输出内容详解:
第一行;这行信息与 uptime 输出的信息一样; 11:35:56 up 51 min 1 user load average: 0.00, 0.01, 0.05 第二行;表示进程数信息; 87 total 3 running 84 sleeping 0 stopped 0 zombie 第三行;表示CPU状态信息;这里显示数据是所有CPU的平均值,如果想看每一个CPU的处理情况,按1即可;折叠,再次按1; 0.7 us 0.3 sy 0.0 ni 99.0 id 0.0 wa 0.0 hi 0.0 si 0.0 st 第四行;物理内存使用信息; 1016476 total 522952 free 276456 used 217068 buff/cache 第五行;交换空间使用信息;我们要时刻监控交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了; 839676 total 839676 free 0 used 573936 avail Mem 第六行;空行; 第七行;各个进程的状态信息; PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND常用命令:
top // 每隔5秒显式所有进程的资源占用情况 top -d 2 // 每隔2秒显式所有进程的资源占用情况 top -c // 每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名) top -p 12345 -p 6789// 每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况 top -d 2 -c -p 123456 // 每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数 使用小技巧 多核CPU监控在top基本视图中,第三行表示CPU状态信息;这里显示数据是所有CPU的平均值,如果想看每一个CPU的处理情况,按1即可;折叠,再次按1;
高亮显示当前运行进程
敲击键盘“b”(打开/关闭加亮效果),当按下后,当前正在运行的进程就会被高亮显示,如下图所示:

可以通过键盘输入“y”键关闭或打开运行态进程的加亮效果。
进程字段排序
默认进入top时,各进程是按照CPU的占用量来排序的。但是,我们可以改变这种排序:
M P T通过键盘输入“x”(打开/关闭排序列的加亮效果),top的视图变化如下:

总结
总结完毕,由于 top 命令时如此的常用,所以我们就不得不去学会使用它;希望我的这篇文章对你有一点帮助。
果冻想,认真玩技术的地方。
2018年12月23日,于内蒙古呼和浩特。