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


当前回答

你可以使用top -b和grep输出你想要的pid(带-b标志的top在批处理模式下运行),或者也可以使用-p标志并指定pid而不使用grep。

其他回答

你可以使用top -b和grep输出你想要的pid(带-b标志的top在批处理模式下运行),或者也可以使用-p标志并指定pid而不使用grep。

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

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

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

(您可以省略“cmd”,但这可能有助于调试)。

注意,这给出了进程在运行期间的平均CPU使用率。

根据@Neon的回答,我的观点是:

pidstat -h -r -u -v -p $(ps aux | grep <process name> | awk '{print $2}' | tr '\n' ',')
ps axo pid,etime,%cpu,%mem,cmd | grep 'processname' | grep -v grep

PID -进程号

etime -进程运行/活时长

%cpu - cpu使用率

%mem -内存使用率

cmd -命令

将processname替换为任何你想跟踪的进程,mysql nginx php-fpm等等…