Состоялся первый выпуск проекта times2log
, предназначенного для мониторинга и логирования процессорного времени, используемого выбранным процессом. Код открыт под лицензией CC0
(общественное достояние).
times2log
представляет из себя Python скрипт, периодически проверяющий /proc/[PID]/stat
указанного процесса для учета utime
и stime
.
times2log
выводит (и опционально логирует в указанный файл) пользовательское и системное время процесса за указанный интервал времени (2 секунды по умолчанию).
Перед началом мониторинга выполняется mlockall()
для бесперебойной работы процесса в условиях нехватки памяти.
Пример вывода:
$ times2log -p `pidof kswapd0`
Process memory locked with MCL_CURRENT | MCL_FUTURE | MCL_ONFAULT
PID: 93, Name: kswapd0, interval: 2s, SC_CLK_TCK: 100
============================================================
user | system | total | interval
-------------- | -------------- | --------------- | --------
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
0 t, 0.0% | 161 t, 80.4% | 161 t, 80.4% | 2.0s
0 t, 0.0% | 199 t, 99.4% | 199 t, 99.4% | 2.0s
0 t, 0.0% | 197 t, 98.4% | 197 t, 98.4% | 2.0s
0 t, 0.0% | 198 t, 98.9% | 198 t, 98.9% | 2.0s
0 t, 0.0% | 150 t, 74.9% | 150 t, 74.9% | 2.0s
0 t, 0.0% | 157 t, 78.4% | 157 t, 78.4% | 2.0s
0 t, 0.0% | 197 t, 98.4% | 197 t, 98.4% | 2.0s
0 t, 0.0% | 29 t, 14.5% | 29 t, 14.5% | 2.0s
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
0 t, 0.0% | 0 t, 0.0% | 0 t, 0.0% | 2.0s
^C--
Times for the last 32.2s:
user: 0 ticks (0.0s), avg: 0.0%
system: 1288 ticks (12.9s), avg: 40.0%
total: 1288 ticks (12.9s), avg: 40.0%
Учет времени ведется в тиках и в процентах от пройденного интервала времени. При завершении работы (после получения сигнала SIGINT
, SIGTERM
, SIGQUIT
или SIGHUP
) times2log
выводит итоговую статистику за все время мониторинга.
>>> Подробности