您的位置:

Linux Top命令:监控系统进程资源占用情况

一、Top命令介绍

Top命令是Linux系统下的一款进程管理工具,它能够动态地查看系统进程的资源占用情况,包括CPU占用率、内存占用率、磁盘IO等。

Top命令可以按照CPU占用率、内存占用率、进程ID等排序方式展示系统进程,通过Top命令可以快速定位到CPU、内存、IO等资源占用过高的进程,为系统管理员提供了一个方便的管理工具。

二、Top命令参数

Top命令的常用参数如下:

top -d time    #指定刷新时间,默认为3s
top -u user    #指定用户
top -p pid     #指定进程ID
top -H         #展示线程信息
top -b         #以批处理模式运行
top -i         #不显示闲置进程

三、查看系统进程资源占用情况

1. 查看系统CPU占用率

top -d 2 -b -n 1 | grep Cpu

该命令将以批处理模式运行Top命令,每2秒刷新一次,执行1次后退出,通过grep命令过滤出CPU信息。结果如下:

Cpu(s):  4.1%us,  1.0%sy,  0.0%ni, 93.9%id,  0.3%wa,  0.0%hi,  0.0%si,  0.7%st

其中,us表示用户进程占用CPU的百分比,sy表示系统进程占用CPU的百分比,ni表示进程优先级变化占用CPU的百分比,id表示CPU闲置的百分比,wa表示IO等待占用CPU的百分比,hi表示处理硬件中断占用CPU的百分比,si表示处理软件中断占用CPU的百分比,st表示虚拟机丢失占用CPU的百分比。

2. 查看系统内存占用情况

top -d 2 -b -n 1 | grep Mem

该命令将以批处理模式运行Top命令,每2秒刷新一次,执行1次后退出,通过grep命令过滤出内存信息。结果如下:

KiB Mem :  4029820 total,  3516656 free,   157748 used,   354416 buff/cache

其中,total表示总内存,free表示空闲内存,used表示占用内存,buff/cache表示缓存使用内存。

3. 查看系统磁盘IO

top -d 2 -b -n 1 | grep 'io\|sda\|sdb'

该命令将以批处理模式运行Top命令,每2秒刷新一次,执行1次后退出,通过grep命令过滤出IO信息。结果如下:

KiB Wrtn/s:    18.63
KiB Rd/s:      18.63

其中,Wrtn表示写入速率,Rd表示读取速率。

四、Top命令操作

1. 切换排序方式

在Top命令界面下,可以通过按下以下按键切换排序方式:

P:按CPU使用率排序
M:按内存使用率排序
T:按时间/累计时间排序

2. 进程操作

在Top命令界面下,可以通过按下以下按键操作进程:

k:强制终止进程
r:修改进程优先级
u:进程列表切换用户名模式
z:进程列表开启或关闭颜色显示模式
c:显示进程的完整命令

五、Top命令输出格式

Top命令输出格式如下:

top - 23:23:23 up  2:53,  1 user,  load average: 0.40, 0.48, 0.39
Tasks: 306 total,   2 running, 303 sleeping,   0 stopped,   1 zombie
%Cpu(s):  4.0 us,  1.0 sy,  0.0 ni, 93.9 id,  0.3 wa,  0.0 hi,  0.0 si,  0.7 st
MiB Mem :  4029.1 total,  3516.2 free,   147.1 used,   365.7 buff/cache
MiB Swap:     0.0 total,     0.0 free,     0.0 used.  3782.7 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                     
19714 root        20   0 3737888 2.088g   2264 S   1.7 53.9  10:26.25 java                                                        
16253 root        20   0  862836  18.8m  55188 S   0.7  0.5   2:30.27 vmtoolsd                                                    
    1 root        20   0  195260   6196   4100 S   0.3  0.2   0:06.15 systemd                                                     
    2 root        20   0       0      0      0 S   0.3  0.0   0:01.92 kthreadd                                                    

输出格式可以分为以下几列:

第一列:进程ID
第二列:用户
第三列:进程优先级
第四列:进程虚拟内存占用量
第五列:进程实际内存占用量
第六列:进程共享内存占用量
第七列:进程所在CPU核心
第八列:进程占用CPU百分比
第九列:进程占用内存百分比
第十列:占用CPU的时间
第十一列:进程命令

六、总结

Top命令是Linux系统下非常有用的进程管理工具,通过Top命令可以动态地查看系统进程的资源占用情况,快速定位到资源占用过高的进程并进行管理。此外,Top命令还具备批处理、排序、操作、输出格式等多种功能,为系统管理员的工作提供了很大的方便。