Linux top命令简解

简介:

top 命令是最流行的性能监视工具之一,它是一个优秀的交互式工具,用于监视性能。它提供系统整体性能,但报告进程信息才是 top 命令的长处。

top 界面分为两个部份,光标上面部份显示关于系统整体性能,光标下面部份显示各进程信息。光标所在处是用来输入操作命令的。

top命令界面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
top - 10:54:30 up 160 days, 16:321 user,  load average: 1.15, 1.37, 1.90
Tasks: 126 total,   1 running, 125 sleeping,   0 stopped,   0 zombie
Cpu(s): 48.1%us,  1.2%sy,  0.0%ni, 49.6%id,  0.0%wa,  0.2%hi,  1.0%si,  0.0%st
Mem:   2572444k total,  2197716k used,   374728k free,     6356k buffers
Swap:  4104596k total,  1581032k used,  2523564k free,   397744k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                         
  520 root      19   0 1851m 883m 3064 S 94.8 35.2   2807:24 java                                                                                                                            
15961 mysql     15   0 55032  22m 2220 5.3  0.9   1:21.35 mysqld                                                                                                                          
 1892 root      18   0 10248  376  352 0.3  0.0 402:46.13 hald-addon-stor                                                                                                                 
18748 root      23   0 1266m 400m 9136 0.3 16.0   0:17.35 java                                                                                                                            
    1 root      15   0 10368  312  280 0.0  0.0   0:26.68 init                                                                                                                            
    2 root      RT  -5     0    0    0 0.0  0.0   0:11.36 migration/0                                                                                                                     
    3 root      34  19     0    0    0 0.0  0.0   0:01.63 ksoftirqd/0                                                                                                                     
    4 root      RT  -5     0    0    0 0.0  0.0   0:00.00 watchdog/0                                                                                                                      
    5 root      RT  -5     0    0    0 0.0  0.0   0:06.33 migration/1                                                                                                                     
    6 root      34  19     0    0    0 0.0  0.0   0:02.33 ksoftirqd/1                                                                                                                     
    7 root      RT  -5     0    0    0 0.0  0.0   0:00.00 watchdog/1                                                                                                                      
    8 root      10  -5     0    0    0 0.0  0.0   0:01.34 events/0                                                                                                                        
    9 root      10  -5     0    0    0 0.0  0.0   0:00.07 events/1                                                                                                                        
   10 root      10  -5     0    0    0 0.0  0.0   0:00.00 khelper                                                                                                                         
   31 root      10  -5     0    0    0 0.0  0.0   0:00.10 kthread                                                                                                                         
   36 root      10  -5     0    0    0 0.0  0.0   0:00.16 kblockd/0                                                                                                                       
   37 root      10  -5     0    0    0 0.0  0.0   0:00.00 kblockd/1                                                                                                                       
   38 root      14  -5     0    0    0 0.0  0.0   0:00.00 kacpid                                                                                                                          
   83 root      11  -5     0    0    0 0.0  0.0   0:00.00 cqueue/0                                                                                                                        
   84 root      11  -5     0    0    0 0.0  0.0   0:00.00 cqueue/1                                                                                                                        
   87 root      10  -5     0    0    0 0.0  0.0   0:00.00 khubd                                                                                                                           
   89 root      10  -5     0    0    0 0.0  0.0   0:00.02 kseriod                                                                                                                         
  163 root      15   0     0    0    0 0.0  0.0   0:00.02 khungtaskd                                                                                                                      
  166 root      10  -5     0    0    0 0.0  0.0  76:34.74 kswapd0                                                                                                                         
  167 root      11  -5     0    0    0 0.0  0.0   0:00.00 aio/0                                                                                                                           
  168 root      11  -5     0    0    0 0.0  0.0   0:00.00 aio/1                                                                                                                           
  305 root      11  -5     0    0    0 0.0  0.0   0:00.00 kpsmoused                                                                                                                       
  318 root      10  -5     0    0    0 0.0  0.0   0:00.00 xenwatch                                                                                                                        
  319 root      10  -5     0    0    0 0.0  0.0   0:00.00 xenbus                                                                                                                          
  344 root      14  -5     0    0    0 0.0  0.0   0:00.00 kstriped                                                                                                                        
  357 root      10  -5     0    0    0 0.0  0.0  18:15.19 kjournald                                                                                                                       
  383 root      11  -5     0    0    0 0.0  0.0   0:00.00 kauditd                                                                                                                         
  416 root      15  -4 13048  244  240 0.0  0.0   0:00.17 udevd

命令界面介绍:

第一行显示的内容和uptime命令一样,【l】可以显示和隐藏这个区域:

1
top - 10:54:30 up 160 days, 16:321 user,  load average: 1.15, 1.37, 1.90

top:   这个没有什么意思,只是个名称而以

10:54:30:     系统当前时间

up 160  :   系统开机到现在经过了多少时间

1 users  :            当前2用户在线

load average: 1.15, 1.37, 1.90        系统1分钟、5分钟、15分钟的CPU

第二行(tasks):

1
Tasks: 126total,   1running, 125sleeping,   0stopped,   0zombie

Tasks:英文意思是工作;任务;差事。

126 total:很好理解,就是当前有38个任务,也就是38个进程。

1 running:1个进程正在运行

125 sleeping:37个进程睡眠

0 stopped:停止的进程数

0 zombie:僵死的进程数

第三行(cpus):

1
Cpu(s): 48.1%us,  1.2%sy,  0.0%ni, 49.6%id,  0.0%wa,  0.2%hi,  1.0%si,  0.0%st

Cpu(s):表示这一行显示CPU总体信息

48.1%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。

1.2%sy:内核占用CPU时间百分比

0.0%ni:renice值为负的任务的用户态进程的CPU时间百分比。nice是优先级的意思

49.6%id:空闲CPU时间百分比

0.0%wa:等待I/O的CPU时间百分比

0.0%hi:CPU硬中断时间百分比

1.0%si:CPU软中断时间百分比

0.0%st:st = steal (time given to other DomU instances)

第四行(memory):

1
2
Mem:   2572444k total,  2197716k used,   374728k free,     6356k buffers
Swap:  4104596k total,  1581032k used,  2523564k free,   397744k cached

Men:内存的意思

256412k total:物理内存总量

30156k used:使用的物理内存量

226256 free:空闲的物理内存量

8176k buffers:用作内核缓存的物理内存量

Swap:交换空间

337356k total:交换区总量

0k used:使用的交换区量

337356k free:空闲的交换区量

12160k cached:缓冲交换区总量

最后:

PID:进程的ID

USER:进程所有者

PR:进程的优先级别,越小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:进程使用的共享内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

COMMAND:进程启动命令名称

应用实例:

  1. 高亮显示当前运行进程  敲击键盘“b”(打开/关闭加亮效果)

  2. 进程字段排序

    默认进入top时,各进程是按照CPU的占用量来排序的。 敲击键盘“x”(打开/关闭排序列的加亮效果)。通过”shift + >”或”shift + <”可以向右或左改变排序列

  3. 显示 完整命令 top -c

  4. 以批处理模式显示程序信息 top -b

  5. 以累积模式显示程序信息 top -s

  6. 设置信息更新次数 top -n 2  (表示更新两次后终止更新显示)

  7. 设置信息更新时间 top -d 3(表示更新周期为3秒)

  8. 显示指定的进程信息 top -p 574

  9. 交互命令:

    1. 输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。

    2. q:退出top命令

      <Space>:立即刷新

      s:设置刷新时间间隔

      c:显示命令完全模式

      t::显示或隐藏进程和CPU状态信息

      m:显示或隐藏内存状态信息

      l:显示或隐藏uptime信息

      f:增加或减少进程显示标志

      S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+

      P:按%CPU使用率排行

      T:按MITE+排行

      M:按%MEM排行

      u:指定显示用户进程

      r:修改进程renice值

      k:kill进程

      i:只显示正在运行的进程

      W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。

      h:帮助命令。

上一篇:如何做自己的服务监控?spring boot 2.x服务监控揭秘


下一篇:Java程序员面试题集(136-150)(转)