Назад | Перейти на главную страницу

Linux: как получить среднюю загрузку ЦП процессом за указанный период времени?

Я пытаюсь измерить эффективность параллелизма моего веб-приложения (работающего в TomCat) во время нагрузочного тестирования. Я ищу способ получить среднюю загрузку процессора моим процессом, охватывающую начало и конец нагрузочного тестирования. Какую утилиту я могу использовать для измерения использования ЦП процессом между двумя временными точками?

Вам нужно (время процессора) / (прошедшее время). Обратите внимание, что если у вас более одного процессора, значение может быть> 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

Его средняя загрузка процессора составляет (54 * 60 + 41) / (30 * 60 + 3) = 1,82.

Следующая команда получает среднее значение использования ЦП и памяти каждые 40 секунд для определенного процесса (pid).

pidstat 40 -ru -p <pid>

Вывод для моего случая (первые две строки для использования ЦП, вторые две строки для памяти):

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