Linux shell 实时监测进程(top命令)

时间:2024-04-05 13:02:32

前言
当程序运行在系统时,我们称子为进程。想要监测这些进程,需要用到ps命令。虽然ps命令在收集运行在系统中的信息时非常有用。但是不足之处在于,ps命令只能显示某个特定时间点的信息。而要想实时监测进程状态,需要用到接下来所讲的top命令。

实时监测进程
我们前言也说了,ps命令只能显示某个特定时间点的信息,不能观察那些频繁换进换出的内存的进程趋势。而top命令刚好适用这种情况。其实ps命令跟top命令很相似,都能够显示进程的信息,但top命令是实时显示的。

top命令运行时输出信息解析
首先咱们现在终端下,输入top命令:

Linux shell 实时监测进程(top命令)

输出的第一部分显示的是系统的概况:
第一行显示了当前的时间、系统运行时间,登录的用到的用户数以及系统的平均负载。

第二行显示了进程的概要信息:
top命令的输出中将进程叫做任务(task),有多少进程处在运行、休眠、停止或是僵化状态(进程完成了,但是父进程没有响应)。

第三行显示CPU概要信息:
top根据进程的属主和进程的状态将CPU利用率分成几类编程。

最后两行说明了系统内存的状态:
第一行说的是系统的物理内存,总共包含多少内存,当前用了多少,还有多少空闲。后一行说的是同样的信息,不过是针对系统交换的空间的状态而言的。

剩下的最后一部分显示了当前运行的进程的详细列表,有些列表跟ps命令的输出类似。

PID 进程的ID
USER 进程属主的名字
PR 进程的优先级
NI 进程的谦让度值
VIRT 进程占用的虚拟内存总量
RES 进程占用的物理内存总量
SHR 进程和其他进程的共享的内存总量
S 进程的状态 (D代表可中断的休眠状态,R代表在运行的状态,S代表休眠的状态,T代表跟踪状态或停止状态,Z代表僵化状态)
%CPU 进程使用的CPU比例
%MEM 进程使用的内存占可用内存的比例
TIME+ 自进程启动到目前为止的CPU时间总量
COMMAND 进程所对应的命令名称,也就是启动的程序名

每个交互式命令都是单字符,在top命令运行是键入可以改变top的行为。

例如在运行top命令时候,键入f 运允许你选择对输出进行排序的字段:键入f 时信息显示如下 :
Linux shell 实时监测进程(top命令)
当键入d时运行你修改轮询间隔。键入q时可以退出top

参考:Linux命令行与shell脚本编程大全