再也不怕看不懂top了

在linux系统中,我们经常使用到的一个命令就是top,它主要是用来显示系统运行中所有的进程和进程对应资源的使用等信息,所有的用户都可以使用top命令 。top命令内容量丰富,可令使用者头疼的是无法全部看懂它的含义,要么就是不用使用,要么就是不太掌握使用技巧 。鉴于此,特地来讲解一下top命令 。

再也不怕看不懂top了

文章插图
基础篇——看懂top这里我们列举一个top案例,以此案例来教大家如何看懂top 。
top - 11:11:59 up2:19,3 users,load average: 0.04, 0.06, 0.05Tasks: 237 total,1 running, 235 sleeping,0 stopped,1 zombie%Cpu(s):0.7 us,0.2 sy,0.0 ni, 99.2 id,0.0 wa,0.0 hi,0.0 si,0.0 stKiB Mem :1863252 total,64576 free,1399920 used,398756 buff/cacheKiB Swap:2097148 total,1720572 free,376576 used.117632 avail MemPID USERPRNIVIRTRESSHR S%CPU %MEMTIME+ COMMAND8816 root200 3633756 24944055012 S0.7 13.42:01.40 gnome-shell6363 root20032033220721660 S0.30.10:18.19 vmtoolsd6924 dmdba3919 2561364 18794416 S0.3 10.10:20.15 dmserver7107 root200501060 157332 118028 S0.38.40:41.72 X10105 dmdba200 3297352 4143486284 S0.3 22.21:08.05 java1 root20019142433921752 S0.00.20:09.82 systemd2 root200000 S0.00.00:00.01 kthreadd3 root200000 S0.00.00:01.98 ksoftirqd/0……第一行:top
top - 11:11:59 up2:19,3 users,load average: 0.04, 0.06, 0.05含义:- 11:11:59——指系统的当前时间up2:19——指当前系统运行的时间2小时19分(未重启,连续运行时间)3 users——当前系统有三个用户登录load average: 0.04, 0.06, 0.05——指系统分别在1分钟、5分钟、15分钟内运行的负载情况 。——load average算法是每隔5秒检查活跃进程数,按特定算法算出,如果结果除以逻辑CPU结果高于5表名系统超负荷运转 。第二行:系统当前进程数情况
Tasks: 237 total,1 running, 235 sleeping,0 stopped,1 zombie含义:237 total:进程数,共237个、1 running:1个运行中、235 sleeping:235个休眠进程、0 stopped:0个停止状态进程、1 zombie:1个僵尸进程 。第三行:当前CPU的运行情况
%Cpu(s):0.7 us,0.2 sy,0.0 ni, 99.2 id,0.0 wa,0.0 hi,0.0 si,0.0 st含义:0.7 us:用户空间占用CPU的百分比0.2 sy:内核空间占用CPU的百分比0.0 ni:改变过优先级的进程占用CPU的百分比99.2 id:空闲CPU百分比0.0 wa: IO等待占用CPU的百分比0.0 hi:硬中断(Hardware IRQ)占用CPU的百分比0.0 si: 软中断(Software Interrupts)占用CPU的百分比0.0 st:系统百分之多少等待得到真正的cpu资源 。在正常情况下最好为0,表明得到了所有必要的cpu资源 。如果这个值为50,表明cpu时有一半时间在等待 。第四行:内存状态 KiB Mem(单位k)
KiB Mem :1863252 total,64576 free,1399920 used,398756 buff/cache含义:1863252 total:物理内存总量1863252kb64576 free: 空闲内存总量64576kb1399920 used:使用中的内存总量1399920kb398756 buff/cache: 缓存的内存量398756kb第五行:swap交换分区 KiB Swap(单位k)
KiB Swap:2097148 total,1720572 free,376576 used.117632 avail Mem 2097148 total:交换区总量1720572 free:空闲交换区总量376576 used:使用的交换区总量117632 avail Mem :可用的交换区总量第六行:空行
top内部交互命令使用时,在此行显示
第七行以下:各进程(任务)的状态监控
PID USERPRNIVIRTRESSHR S%CPU %MEMTIME+ COMMAND6924 dmdba3919 2561364 18794416 S0.3 10.10:20.15 dmserver含义:PID — 进程idUSER — 进程所有者PR — 进程优先级NI — nice值 。负值表示高优先级,正值表示低优先级VIRT — 进程使用的虚拟内存总量,单位kb 。VIRT=SWAP+RESRES — 进程使用的、未被换出的物理内存大小,单位kb 。RES=CODE+DATASHR — 共享内存大小,单位kbS — 进程状态 。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程%CPU — 上次更新到现在的CPU时间占用百分比%MEM — 进程使用的物理内存百分比TIME+ — 进程使用的CPU时间总计,单位1/100秒COMMAND — 进程名称(命令名/命令行)进阶一:top命令参数用法对于top命令的完整语法是:top [选项],而在我们日常使用过程中都是忽略选项的,下面来看看top命令的选项都有哪些 。我们可以使用top -h查看命令帮助信息 。
host bin]# top -hprocps-ng version 3.3.10Usage:top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]top命令选项:
-b以批处理模式操作-c显示完整的治命令-d屏幕刷新间隔时间-I忽略失效过程-s保密模式-S累积模式-i<时间>设置刷新间隔时间-u<用户名> 指定用户名-p<进程号> 指定进程-n<次数>循环显示的次数注意:请忽略多余的选项,help中实际的选项较少,是因为本文在麒麟操作系统中进行的演示 。