Как я могу получить мгновенные значения загрузки процессора?

Я создал сервер-клиентское приложение, в котором в зависимости от загрузки процессора и условий загрузки он отправляет запрос файла пользователю.

Я использую /proc/loadavg values для этого. Но эта утилита выдает значения, усредненные по крайней мере за 1 минуту.

Я хочу, чтобы значения усреднялись за гораздо меньшее время, например, за 1 или 5 секунд.

6
задан 30 November 2012 в 06:44

1 ответ

Как насчет парсинга вывода из mpstat из пакета sysstat? Вы можете получить статистику для каждого процессора и установить интервал (ниже для интервала 2 с).

Пример вывода:

$ mpstat -P ALL 2
Linux 3.5.0-19-generic (ubuntu)     11/30/2012  _x86_64_    (4 CPU)

08:34:28 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
08:34:30 AM  all    1.01    0.00    1.26    0.00    0.00    0.13    0.00    0.00   97.61
08:34:30 AM    0    2.50    0.00    1.50    0.00    0.00    0.50    0.00    0.00   95.50
08:34:30 AM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
08:34:30 AM    2    1.01    0.00    3.02    0.00    0.00    0.00    0.00    0.00   95.98
08:34:30 AM    3    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00   99.00

В качестве альтернативы, вы можете реализовать алгоритм самостоятельно. Взгляните здесь и здесь .

Еще один способ сделать это - отслеживать разницу в времени простоя по сравнению с другим временем использования в /proc/stat через определенный интервал времени и рассчитывать нагрузку на основании этого. Вот дополнительная информация о /proc/stat.

0
ответ дан 30 November 2012 в 06:44

Другие вопросы по тегам:

Похожие вопросы: