我想知道Linux上单个进程的CPU和内存使用情况——我知道PID。希望我每秒钟都能得到它,并使用'watch'命令将其写入CSV。我可以使用什么命令从Linux命令行中获得这些信息?


当前回答

caf的答案是: Top -p <pid>

这将自动刷新CPU使用情况,因此非常适合监控。

其他回答

对于那些纠结了一段时间,想知道为什么选定的答案不管用的人:

ps -p <pid> -o %cpu,%mem

%cpu和%mem之间没有空格。

正如上面caf的回答中所评论的那样,ps和在某些情况下pidstat将为您提供pCPU的生命周期平均值。 要获得更准确的结果,请使用top。如果你需要跑到顶部,你可以跑:

top -b -n 1 -p <PID>

或者仅用于进程数据和报头:

top -b -n 1 -p <PID> | tail -3 | head -2

没有头文件:

top -b -n 1 -p <PID> | tail -2 | head -1

使用pidstat(来自sysstat -参考链接)。

例如,每5秒监控这两个进程id(12345和11223)的使用情况

$ pidstat -h -r -u -v -p 12345,11223 5

您可以通过使用的进程名获取结果

ps -C chrome -o %cpu,%mem,cmd

-C选项允许你在不知道pid的情况下使用进程名。

这是一个很好的技巧,可以实时跟踪一个或多个程序,同时还可以查看其他工具的输出: 看"top -bn1 -p$(pidof foo),$(pidof bar);工具”