我想知道Linux上单个进程的CPU和内存使用情况——我知道PID。希望我每秒钟都能得到它,并使用'watch'命令将其写入CSV。我可以使用什么命令从Linux命令行中获得这些信息?
当前回答
(如果你使用的是MacOS 10.10,试试top的cumulative -c选项:
top -c a -pid PID
(此选项在其他linux中不可用,尝试使用Scientific linux el6和RHEL6)
其他回答
下面的命令获取特定进程(pid)每40秒CPU和内存使用率的平均值
pidstat 40 -ru -p <pid>
我的案例的输出(前两行为CPU使用率,后两行为内存):
02:15:07 PM PID %usr %system %guest %CPU CPU Command
02:15:47 PM 24563 0.65 0.07 0.00 0.73 3 java
02:15:07 PM PID minflt/s majflt/s VSZ RSS %MEM Command
02:15:47 PM 24563 6.95 0.00 13047972 2123268 6.52 java
我用htop
sudo apt install htop
htop
按F3查找感兴趣的进程,记住PID。用q退出并再次启动htop,只显示您想要的进程
htop -p $PID
使用pidstat(来自sysstat -参考链接)。
例如,每5秒监控这两个进程id(12345和11223)的使用情况
$ pidstat -h -r -u -v -p 12345,11223 5
你可以使用top -b和grep输出你想要的pid(带-b标志的top在批处理模式下运行),或者也可以使用-p标志并指定pid而不使用grep。
您可以通过使用的进程名获取结果
ps -C chrome -o %cpu,%mem,cmd
-C选项允许你在不知道pid的情况下使用进程名。