Я пытаюсь измерить эффективность параллелизма моего веб-приложения (работающего в 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