top - 交互式监控

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
...

前五行是当前系统情况整体的统计信息区,后面则是进程相关信息。
<br />

####时间和负载状态:
`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全部跑满,此时应注意系统风险。

<br />
####任务和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时间。

<br />
####内存使用率

Mem: 8008908k total, 7456576k used, 552332k free, 431560k buffers
Swap: 8388600k total, 15708k used, 8372892k free, 4259372k cached

与`free`显示的结果一样,只不过只能以KB单位结尾。



<br />
####字段列

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`: 运行进程所使用的命令
<br />
`f`交互式命令可以选择其他可以显示的类型数据。





<br />




###交互选项:
* 'c':同`-c`
* 'R':反向排序/常规排序
* 'u':同`-u`
* 'n','#':设置最大显示的任务数量,前几个任务
* 'k':kill命令,后跟pid。可直接在top界面杀死进程
* 'r':重新设置一个任务的调试优先级
* 'f':自定义显示的字段。
* 'l':切换显示平均负载和启动时间
* 't':切换显示进程和CPU状态信息
* 'm':切换显示内存信息
* 'M':根据驻留内存大小进行排序,shift+m
* 'E':内存显示后缀可自动换算成KiB,MiB,GiB,TiB,PiB,EiB结尾,新版本的top中才有此功能。6没有,7有。
* 'e':切换字段列中与内存相关的信息以KiB,MiB,GiB,TiB,PiB,EiB,此类单位结尾,
* 'P':根据CPU使用百分比大小进行排序, shift+p
* 'd':设置进程刷新时间
* 'h':显示交互命令帮助菜单
* 'q':退出程序
* 回车和空格可手动刷新
 

<br />
**其他使用技巧:**
1. 在`top`命令视图中,按数字"1",可监控每个逻辑CPU的状态






<br />

**示例:**

[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

<br />

[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](https://www.oschina.net/translate/using-top-more-efficiently)
posted @ 2019-02-01 10:44  dance_man  阅读(723)  评论(0编辑  收藏  举报