我正在尝试在负载测试期间测量我的 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