Linux 系统TOP命令和Windows系统的任务管理器差不多,都是查看系统总体运行情况。不过一直都只能看懂部分参数,查阅资料后终于明白所有信息的含义。在此记录。

输出示例

[root@a ~]# top
top - 23:02:21 up 1 day, 12:35,  1 user,  load average: 29.10, 27.72, 21.83
Tasks:   8 total,   1 running,   7 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.7%sy,  0.0%ni, 96.9%id,  1.7%wa,  0.0%hi,  0.7%si,  0.0%st
Mem:   1048576k total,    29520k used,  1019056k free,        0k buffers
Swap:  1048576k total,        8k used,  1048568k free,    17516k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                           
    1 root      20   0 19292 1596 1360 S  0.0  0.2   0:00.51 init                                                                                                               
  205 root      20   0  237m 3340 1668 S  0.0  0.3   0:04.30 rsyslogd                                                                                                           
  233 root      20   0  4124 1428 1344 S  0.0  0.1   0:00.00 mingetty                                                                                                           
  235 root      20   0  4124 1324 1240 S  0.0  0.1   0:00.00 mingetty                                                                                                           
12001 root      20   0 66688 2788 2076 S  0.0  0.3   0:00.00 sshd                                                                                                               
12005 root      20   0 96320 6248 5300 S  0.0  0.6   0:00.04 sshd                                                                                                               
12007 root      20   0 11500 2620 2272 S  0.0  0.2   0:00.01 bash                                                                                                               
12027 root      20   0 14956 1996 1784 R  0.0  0.2   0:00.00 top      

详解

top - 23:02:21 up 1 day, 12:35,  1 user,  load average: 29.10, 27.72, 21.83
  • top :命令名称
  • 23:02:21 : 当前系统时间
  • up 1 day, 12:35 :已开机1天,12小时,35分钟
  • load average: 29.10, 27.72, 21.83:系统中正在等待磁盘、网络、CPU运行的进程数量,三个数值分别表示1分钟,5分钟,15分钟三个时间段内的平均数量。更详细的解释
Tasks:   8 total,   1 running,   7 sleeping,   0 stopped,   0 zombie

当前总共8个进程,1个运行,7个休眠,0个停止运行,0个僵尸进程

Cpu(s):  0.0%us,  0.7%sy,  0.0%ni, 96.9%id,  1.7%wa,  0.0%hi,  0.7%si,  0.0%st
  • us 用户空间占用CPU百分比
  • sy 内核空间占用CPU百分比
  • ni 用户进程空间内改变过优先级的进程占用CPU百分比
  • id 空闲CPU百分比
  • wa 等待输入输出的CPU时间百分比
  • hi 硬件中断
  • si 软件中断
Mem:   1048576k total,    29520k used,  1019056k free,        0k buffers

内存,总计1048576k,使用29520k,空闲1019056k,作为缓存使用0k。
下面的SWAP同理。SWAP,虚拟内存,在硬盘划分一块空间作为内存的缓存,当内存空间不足时,就会使用虚拟内存空间。

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
    1 root      20   0 19292 1596 1360 S  0.0  0.2   0:00.51 init    
  • PID: Process Id,进程ID
  • USER: 运行进程的用户
  • PR: Priority,优先级,范围从-20(优先级最高)到20(优先级最低)。
  • NI: Nice值,也是一个关于优先级的数值。http://en.wikipedia.org/wiki/Nice_%28Unix%29
  • VIRT: Virtual Memory Size (KiB) ,虚拟内存使用量
  • RES: Resident Memory Size (KiB),物理内存使用量
  • SHR: Shared Memory Size (KiB) ,共享内存,可与其他进程共享的内存量
  • S: Process Status,进程状态
    • D = uninterruptible sleep
    • R = 运行中
    • S = 休眠
    • T = 停止
    • Z = 僵尸
  • %CPU:CPU占用百分比,按单核计算。如果CPU有多个核心,这个数值可以超过100%。比如3个核心都占用了60%,此处会显示为180%。可以按Shifti,来切换显示。
  • %MEM:物理内存占用百分比
  • TIME+ :CPU 时间, 进程启动后,实际使用CPU的时间。多核CPU会累积每个核心的使用时间。0:04.30表示,0分钟,4.3秒。
  • COMMAND :命令行,启动程序使用的命令。要查看完整带参数的命令,使用top -c重新打开TOP来查看。

参考链接

https://superuser.com/questions/575202/understanding-top-command-in-unix
http://linux.it.net.cn/e/command/2014/0831/4096.html
http://blog.51cto.com/yangdong/822487