04.07.2022

times2log 0.1.0 — монитор процессорного времени

Состоялся первый выпуск проекта 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 выводит итоговую статистику за все время мониторинга.

>>> Подробности

Источник.