top - display Linux processes
显示linux进程
格式:
top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]
常用命令行选项:
- -c:显示完整的运行命令,默认显示命令名称。
- -b:批处理模式,此模式下top不接受输入并运行。直到使用
-n
命令的迭代限制或终止信号。此命令可将top
的输出至其他程序或文件中。 - -n:显示限制次数
- -d:自动刷新延迟的时间,默认3秒
- -p pid:监视特定的pid,pid为0表示top命令本身
- -u user|uid:监视特定用户的进程。与
-p
命令冲突
标准输出说明:
[root@proxy ~]# top
top - 11:25:58 up 784 days, 7:31, 5 users, load average: 0.08, 0.10, 0.09
Tasks: 593 total, 1 running, 592 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 0.1%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8008908k total, 7456576k used, 552332k free, 431560k buffers
Swap: 8388600k total, 15708k used, 8372892k free, 4259372k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
44904 nobody 20 0 490m 139m 5904 S 5.7 1.8 8:21.05 nginx
44906 nobody 20 0 491m 140m 5884 S 5.7 1.8 8:26.67 nginx
18813 root 20 0 15420 1516 828 R 3.8 0.0 0:00.03 top
...
前五行是当前系统情况整体的统计信息区,后面则是进程相关信息。
时间和负载状态:
top - 11:25:58 up 784 days, 7:31, 5 users, load average: 0.08, 0.10, 0.09
:
第一行可以使用linux系统自带uptime
命令获取。11:25:58
:当前时间up 784 days , 7:31
:运行多长时间,上一次启动到现在的时间。5 users
:当前登录用户的数量load average: 0.08, 0.10, 0.09
:1,5,15分钟的负载情况,1表示一个逻辑CPU负载满。如果机器有n个CPU核心,则1*n代表CPU全部跑满,此时应注意系统风险。
任务和CPU状态:
Tasks: 593 total, 1 running, 592 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 0.1%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
第一行显示总的任务和线程,还有正在运行,睡眠,停止,僵尸状态的进程数量。
第二行显示CPU状态:0.4%us
:user,用户占用cpu的百分比0.1%sy
:system,系统占用cpu的百分比0.0%ni
:niced,运行调整过优先级的用户进程的时间99.5%id
:idle,空间时间0.0%wa
:wait,等待IO完成的时间0.0%hi
:hardware interrupts,用于维护硬件中断的时间0.0%si
:software interrupts,用于维护软件中断的时间0.0%st
stole,这个系统被hypervisor(虚拟机管理程序)消耗的CPU时间。
内存使用率
Mem: 8008908k total, 7456576k used, 552332k free, 431560k buffers
Swap: 8388600k total, 15708k used, 8372892k free, 4259372k cached
与free
显示的结果一样,只不过只能以KB单位结尾。
字段列
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
44904 nobody 20 0 490m 139m 5904 S 5.7 1.8 8:21.05 nginx
44906 nobody 20 0 491m 140m 5884 S 5.7 1.8 8:26.67 nginx
18813 root 20 0 15420 1516 828 R 3.8 0.0 0:00.03 top
PID
:进程号USER
:进程用户PR
:Priority,进程的优先级NI
:进程的nice值(优先级),越小的值意味着越高的优先级。VIRT
:进程使用的虚拟内存,它包括所有代码数据和共享库,以用交换出去的页面,已映射但未使用的页。RES
:常驻内存大小。SHR
:Shared Memory Size,任务可用的共享内存量。通常不是所有的共享内存都驻留在任务中。它只是反映了可能被共享的内存与其他流程S
:进程状态
* D:不可中断睡眠
* R:运行态
* S:睡眠态
* T:被控制信号停止
* Z:僵尸态%CPU
:自上次更新以来程序占用CPU时间份额,表示为总CPU时间百分比。%MEM
:进程使用的可用物理内存百分比TIME+
:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。86:34.44,表示86分34秒,44表示百分之44秒COMMAND
: 运行进程所使用的命令f
交互式命令可以选择其他可以显示的类型数据。
交互选项:
- 'c':同
-c
- 'R':反向排序/常规排序
- 'u':同
-u
- 'n','#':设置最大显示的任务数量,前几个任务
- 'k':kill命令,后跟pid。可直接在top界面杀死进程
- 'r':重新设置一个任务的调试优先级
- 'f':自定义显示的字段。
- 'l':切换显示平均负载和启动时间
- 't':切换显示进程和CPU状态信息
- 'm':切换显示内存信息
- 'M':根据驻留内存大小进行排序
- 'E':内存显示后缀可自动换算成KiB,MiB,GiB,TiB,PiB,EiB结尾,新版本的top中才有此功能。6没有,7有。
- 'e':切换字段列中与内存相关的信息以KiB,MiB,GiB,TiB,PiB,EiB,此类单位结尾,
- 'P':根据CPU使用百分比大小进行排序
- 'd':设置进程刷新时间
- 'h':显示交互命令帮助菜单
- 'q':退出程序
- 回车和空格可手动刷新
其他使用技巧:
- 在
top
命令视图中,按数字"1",可监控每个逻辑CPU的状态
示例:
[moorecat@DMZ4 ~]$ top
top - 10:51:56 up 95 days, 18:15, 2 users, load average: 0.01, 0.22, 0.26
Tasks: 468 total, 1 running, 467 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.3%us, 0.4%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16280416k total, 14170104k used, 2110312k free, 24928k buffers
Swap: 8208376k total, 5769468k used, 2438908k free, 523552k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
38434 root 20 0 4228m 325m 6004 S 22.9 2.1 380:47.50 java -jar -Xms256m -Xmx256m -XX:PermSize=128m -XX:MaxPermSize=128m /usr/local/instance/sanya/jsappnew/b
36978 moorecat 20 0 15300 1556 948 R 5.7 0.0 0:00.08 top
38780 root 20 0 8653m 473m 6344 S 3.8 3.0 572:05.22 java -jar -Xms256m -Xmx256m -XX:PermSize=128m -XX:MaxPermSize=128m /usr/local/instance/sanya/jsappnew/b
[root@node1 ~]# top -b -n 1 > 1.txt #保存输出至文件中
[root@node1 ~]# top -c #进程详细执行命令
top - 02:02:45 up 5:51, 3 users, load average: 0.05, 0.04, 0.05
Tasks: 101 total, 2 running, 99 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.3 us, 21.1 sy, 0.0 ni, 73.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 997956 total, 522848 free, 187500 used, 287608 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 630760 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6499 root 20 0 162072 2236 1564 R 11.8 0.2 0:00.04 top
4258 mongod 20 0 1079516 86216 7688 S 5.9 8.6 3:24.22 /usr/bin/mongod -f /etc/mongod.conf
1 root 20 0 125428 3808 2560 S 0.0 0.4 0:02.09 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
...
额外资料:https://www.oschina.net/translate/using-top-more-efficiently