Как в Linux правильно вычислять среднюю загрузку процессора за определенный период времени (за час, за сутки и т.п.)? Можно ли вообще в данном случае опираться на данные из /proc/loadavg?
Не буду зострять внимание как и откуда брать время, которое...16.02.05 10:32 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 16.02.05 10:39 Количество правок: 3
> Как в Linux правильно вычислять среднюю загрузку процессора > за определенный период времени (за час, за сутки и т.п.)?
Не буду зострять внимание как и откуда брать время, которое прошло от запуска системы и сколько времени работал за это время процессор (не находился в состоянии idle).
Чаще всего источник (будь то библиотечная функция, или /proc/loadavg, или uptime, или еще что-то) возвращает слишком мало информации - только два числа, может еще результат деления одного на другое - средняя загрузка.
Так вот, для получения загрузки за произвольный период времени или за несколько периодов для построения графиков нужна достаточно длинная последовательность сильно дискретизированных значений.
Как их получить - легко. Какая-нибудь програмка каждую минуту узнает "сколько времени трудился процессор" (разницу между текущим и предыдущим значением) и пишет в массивчик/файльчик его и текущее время. Отсюда можно "высосать" любую инфу!
Хотите узнать сколько был занят проц с 12:00 до 13:00 - суммируем процессорное время в этом промежутке. А если разделить на час, то узнаем коэффициент загрузки.
> Можно ли вообще в данном случае опираться на данные из > /proc/loadavg?
[Unix] uptime15.02.05 20:03 Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman