page contents

Linux中强大的top命令

top命令算是最直观、好用的查看服务器负载的命令了。它实时动态刷新显示服务器状态信息,且可以通过交互式命令自定义显示内容,非常强大。

attachments-2020-03-DDZQm30L5e81aaa938ffb.jpg

top命令算是最直观、好用的查看服务器负载的命令了。它实时动态刷新显示服务器状态信息,且可以通过交互式命令自定义显示内容,非常强大。


在终端中输入top,回车后会显示如下内容:

  1. top - 21:48:39 up 8:57, 2 users,load average:0.36,0.24,0.14

  2. Tasks:322 total,2 running,320 sleeping,0 stopped,0 zombie

  3. %Cpu(s):5.0 us,1.7 sy,0.0 ni,93.0id,0.0 wa,0.3 hi,0.0 si,0.0 st

  4. KiB Mem:1010504 total,937416 used,73088 free,23708 buffers

  5. KiB Swap:1046524 total,280708 used,765816 free.365556 cached Mem


  6. PIDUSER PR NI VIRT RES SHR S %CPU %MEMTIME+ COMMAND

  7. 8096 root2003206243850821192 S1.73.80:41.03 Xorg

  8. 13536 tabalt20069733610427256776 S1.710.30:08.29 gnome-langu+

  9. 9426 tabalt20012132287297616860 S1.07.22:07.27 compiz

  10. 197 root200000 S0.30.00:36.13 kworker/0:2

  11. 1009 root20030311233921500 S0.30.30:00.93 polkitd

  12. 9670 tabalt20032593243002256 S0.30.40:40.27 vmtoolsd

  13. 14016 root2554394024082000 S0.30.20:01.12http

  14. 14149 tabalt2005911801950412820 S0.31.90:00.45 gnome-termi+

  15. 1 root200336481972744 S0.00.20:01.79 init

  16. 2 root200000 S0.00.00:00.00 kthreadd

  17. 3 root200000 S0.00.00:02.80 ksoftirqd/0

  18. 4 root200000 S0.00.00:00.00 kworker/0:0

  19. 5 root0-20000 S0.00.00:00.00 kworker/0:0H

  20. 7 root200000 S0.00.00:05.55 rcu_sched

  21. 8 root200000 R0.00.00:03.43 rcuos/0

  22. 9 root200000 S0.00.00:00.00 rcuos/1

  23. 10 root200000 S0.00.00:00.00 rcuos/2


一、系统信息统计


前五行是系统整体状态的统计信息展示区域。下面分别介绍每一行中的内容:


1、第一行显示服务器概况


如下所示,第一行列出了服务器运行了多长时间,当前有多少个用户登录,服务器的负荷情况等,使用uptime命令能获得同样的结果。

  1. top - 21:48:39 up 8:57, 2 users,load average:0.36,0.24,0.14

  2. / / / \

  3. 当前时间 运行时长 当前登录用户数 平均负载(1分钟、5分钟、15分钟)

平均负载的值越小代表系统压力越小,越大则代表系统压力越大。通常,我们会以最后一个数值,也就是15分钟内的平均负载作为参考来评估系统的负载情况。

对于只有单核cpu的系统,1.0是该系统所能承受负荷的边界值,大于1.0则有处理需要等待。

一个单核cpu的系统,平均负载的合适值是0.7以下。如果负载长期徘徊在1.0,则需要考虑马上处理了。超过1.0的负载,可能会带来非常严重的后果。

当然,多核cpu的系统是在前述值的基础上乘以cpu内核的个数。如对于多核cpu的系统,有N个核则所能承受的边界值为N.0。

可以使用如下命令来查看每个处理器的信息:

cat /proc/cpuinfo

如果只想计算有多少个cpu内核,可以使用如下命令:

cat /proc/cpuinfo | grep 'model name' | wc -l


2、第二行是进程信息:


  1. Tasks: 322 total, 2 running, 320 sleeping, 0 stopped, 0 zombie

  2. / / / / /

  3. 进程总数 正运行进程数 睡眠进程数 停止进程数 僵尸进程数


3、第三行是CPU信息:


  1. %Cpu(s):

  2. 5.0 us 用户空间CPU占比

  3. 1.7 sy 内核空间CPU占比

  4. 0.0 ni 用户进程空间改过优先级的进程CPU占比

  5. 93.0 id 空闲CPU占比

  6. 0.0 wa 待输入输出CPU占比

  7. 0.3 hi 硬中断(Hardware IRQ)CPU占比

  8. 0.0 si 软中断(Software Interrupts)CPU占比

  9. 0.0 st -


4、第四行是内存信息:


  1. KiB Mem: 1010504 total, 937416 used, 73088 free, 23708 buffers

  2. / / / /

  3. 物理内存总量 使用中总量 空闲总量 缓存的内存量


5、第五行是swap交换分区信息:


  1. KiB Swap: 1046524 total, 280708 used, 765816 free, 365556 cached Mem

  2. / / / /

  3. 交换区总量 使用中总量 空闲总量 缓存的内存量


二、进程(任务)状态监控


第七行及以下显示了各进程(任务)的状态监控。各列所代表的含义如下:

  1. PID 进程id

  2. USER 进程所有者

  3. PR 进程优先级

  4. NI nice值。负值表示高优先级,正值表示低优先级

  5. VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

  6. RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

  7. SHR 共享内存大小,单位kb

  8. S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

  9. %CPU 上次更新到现在的CPU时间占用百分比

  10. %MEM 进程使用的物理内存百分比

  11. TIME+ 进程使用的CPU时间总计,单位1/100秒

  12. COMMAND 进程名称(命令名/命令行)


三、与top交互


  • 按键b打开或关闭 运行中进程的高亮效果
  • 按键x打开或关闭 排序列的高亮效果
  • shift + > 或 shift + < 可以向右或左改变排序列
  • f键,可以进入编辑要显示字段的视图,有 * 号的字段会显示,无 * 号不显示,可根据页面提示选择或取消字段。


attachments-2020-03-CpYDrpoY5e81aa8d907f1.jpg

  • 发表于 2020-03-30 16:16
  • 阅读 ( 624 )

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章