Linux:如何获取指定时间段内某个进程的平均 CPU 利用率?

Linux:如何获取指定时间段内某个进程的平均 CPU 利用率?

我正在尝试在负载测试期间测量我的 Web 应用程序(在 TomCat 中运行)的并发效率。我正在寻找一种方法来获取负载测试开始和结束时进程的平均 CPU 利用率。我可以使用什么实用程序来测量 2 个时间点之间进程的 CPU 利用率?

答案1

以下命令获取特定进程 (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

答案2

您想要的是 (CPU 时间) / (已用时间)。请注意,如果您有多个处理器,则该值可能会 > 1。

PID=<The pid of your process>
ps -o pid,comm,etime,time -p $PID

你将获得类似的输出

 PID COMMAND             ELAPSED     TIME
3545 ******                30:03 00:54:41

其平均CPU负载为(54*60+41)/(30*60+3)=1.82

相关内容