命令介绍
命令本身没有太多参数 主要是如何分析top命令反馈的信息
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
- d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
- q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
- c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
- s : 安全模式,将交谈式指令取消, 避免潜在的危机
- i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
- n : 更新的次数,完成后将会退出 top
- b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
内容分析
完整一次top如下:
[root@wxl-1 ~]# top -n1
top - 21:52:43 up 13 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 6.2 sy, 0.0 ni, 93.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 999696 total, 452164 free, 379936 used, 167596 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 444008 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2119 root 20 0 157876 2208 1516 R 6.7 0.2 0:00.01 top
1 root 20 0 128212 6828 4064 S 0.0 0.7 0:01.22 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.06 ksoftirqd/0
【第1行,任务队列信息】top - 21:52:43 up 13 min, 1 user, load average: 0.00, 0.01, 0.05【系统负载】
【第2行,进程信息】Tasks: 95 total(进程总数), 1 running(正在运行的进程数), 94 sleeping(睡眠进程数), 0 stopped(停止进程数), 0 zombie(僵尸进程数)
【第3行,cpu信息】%Cpu(s): 0.0 us(运行未调整优先级的用户进程的cpu百分比), 6.2 sy(运行内核进程的cpu百分比), 0.0 ni(运行已调整优先级的用户进程的CPU百分比), 93.8 id(空闲cpu百分百占比), 0.0 wa(用于等待IO完成的CPU百分比), 0.0 hi(处理硬件中断的CPU百分比), 0.0 si(处理软件中断的CPU百分比), 0.0 st(虚拟机占用CPU百分比)
【第4行,内存信息】KiB Mem : 999696 total(内存总量), 452164 free(空闲内存), 379936 used(使用的内存), 167596 buff/cache(用作缓存的内存)
【第5行,内存信息】KiB Swap: 2097148 total(交换区总量), 2097148 free(空闲交换区), 0 used(使用的交换区). 444008 avail Mem(可用交换取总量)
特别讲解:load average: 0.00, 0.01, 0.05【系统负载】
代表1分钟,5分钟,15分钟内的CPU的平均负载
负载超过逻辑cpu数量 就可以说cpu比较繁忙了
例如我这边实验学习用的虚拟机:
cat /proc/cpuinfo |grep 'processor'|wc –l 查看得到我的逻辑cpu数量是1个,如果我的负载超过1,就需要关注了
用top命令看到的的平均负载是很低的