过程监控和信息收集
总的来说,你有两种方法可以监控 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 秒记录一次所有活动)到这个列表中,很少有专门的命令如 iotop
或 iftop
$ sudo iotop