我想知道Linux上单个进程的CPU和内存使用情况——我知道PID。希望我每秒钟都能得到它,并使用'watch'命令将其写入CSV。我可以使用什么命令从Linux命令行中获得这些信息?
当前回答
对于那些纠结了一段时间,想知道为什么选定的答案不管用的人:
ps -p <pid> -o %cpu,%mem
%cpu和%mem之间没有空格。
其他回答
你可以使用top -b和grep输出你想要的pid(带-b标志的top在批处理模式下运行),或者也可以使用-p标志并指定pid而不使用grep。
使用pidstat(来自sysstat -参考链接)。
例如,每5秒监控这两个进程id(12345和11223)的使用情况
$ pidstat -h -r -u -v -p 12345,11223 5
这是一个很好的技巧,可以实时跟踪一个或多个程序,同时还可以查看其他工具的输出: 看"top -bn1 -p$(pidof foo),$(pidof bar);工具”
根据@Neon的回答,我的观点是:
pidstat -h -r -u -v -p $(ps aux | grep <process name> | awk '{print $2}' | tr '\n' ',')
ps aux|awk '{print $2,$3,$4}'|grep PID
其中第一列是PID,第二列是CPU使用率,第三列是内存使用率。