Накопленное процессорное время, включая мертвые процессы

338
BeeOnRope

Есть ли способ получить совокупное время ЦП, использованное за некоторый интервал для всех процессов, включая процессы, которые больше не существуют в конце интервала.

top -Sможет сделать это, но это не дает вам представления о реальных процессах, которые использовали время. Например, первые несколько top -Sсортированных по времени записей выглядят так:

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND  1630 beeonr 20 0 46472 4212 3076 S 0.0 0.0 624:16.94 upstart  12394 beeonr 20 0 28264 9672 2164 S 0.0 0.1 340:06.54 bash  1317 root 20 0 715100 79976 65224 S 1.3 0.5 177:59.66 Xorg  3199 beeonr 20 0 1553868 306368 51220 S 0.3 1.9 130:03.08 compiz  27026 beeonr 20 0 9915552 842076 169492 S 0.3 5.2 62:02.38 firefox  

Из этого списка, firefoxи в некоторой степени compiz, только два, где процессорное время действительно использовалось главным образом этим процессом. Вещи любят upstartи bashимеют огромные значения только потому, что многие тяжелые процессы, такие как задачи компиляции или различные демоны, запускались из командной строки или запуска, и когда эти процессы прекращались, их время ЦП было назначено их родителю (и т. Д. Рекурсивно). Таким образом, bashсам по себе, вероятно, использовал очень мало процессорного времени.

Мне бы хотелось посмотреть на систему, которая фиксирует базовый процесс, который использует процессорное время, например, должна быть /usr/bin/gccстрока, если я выполнял много компиляций в течение интервала.

0

0 ответов на вопрос