过程监控和信息收集

总的来说,你有两种方法可以监控 linux 主机上的进程

静态监控

最广泛使用的命令是 ps(即进程状态)命令用于提供有关当前正在运行的进程的信息,包括其进程标识号(PID)。

这里收集特定信息的几个有用选项。

列出层次结构中的进程

$ ps -e -o pid,args --forest

列出按%cpu 使用情况排序的进程

$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'

列出按 mem(KB) 用法排序的进程。

$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

列出特定进程的所有线程(示例中为“firefox-bin”进程)

$ ps -C firefox-bin -L -o pid,tid,pcpu,state

找到特定进程后,你可以使用 lsof 收集与其相关的信息,以列出进程 ID 已打开的路径

$ lsof -p $$ 

或者基于路径查找已指定路径打开的列表进程

$ lsof ~

互动监控

最常见的动态监控工具是:

$ top

这主要是默认命令,具有大量选项来实时过滤和表示信息(与 ps 命令相比)。

仍然有更多的高级选项可以考虑和安装为 top 替换

$ htop -d 5

要么

$ atop 

哪个能够将所有活动记录到日志文件中(默认 atop 将每 600 秒记录一次所有活动)到这个列表中,很少有专门的命令如 iotopiftop

$ sudo iotop