Как рассчитать% CPU на основе сырых тиков CPU в SNMP

Согласно http://net-snmp.sourceforge.net/docs/mibs/ucdavis.html ssCpuUser, ssCpuSystem, ssCpuIdle и т. д. устарели в пользу необработанных вариантов (ssCpuRawUser, так далее).

Прежние значения (которые не охватывают такие вещи, как nice, wait, kernel, interrupt и т. Д.) Возвращали процентное значение:

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

Этот объект устарел в пользу ssCpuRawUser(50) ', который может быть использован для расчета той же метрики, но за любой желаемый период времени.

Необработанные значения возвращают "сырое" количество тиков, потраченных ЦП:

Количество "тиков" (обычно 1/100) затрачено на обработку кода уровня пользователя.

В многопроцессорной системе ssCpuRaw* Счетчики являются накопительными для всех процессоров, поэтому их сумма обычно составляет N*100 (для N процессоров).

Мой вопрос: как вы превращаете количество тиков в процентах?

То есть, как вы узнаете, сколько тиков в секунду (это обычно - что подразумевается не всегда - 1/100 с, что либо означает 1 каждые 100 секунд, либо тик представляет 1/100-ю секунды).

Я полагаю, вам также нужно знать, сколько процессоров существует, или вам нужно получить все значения процессоров, чтобы сложить их все вместе. Я не могу найти MIB, который дает вам целочисленное значение для числа процессоров, что делает предыдущий маршрут неудобным. Последний маршрут кажется ненадежным, потому что некоторые цифры перекрываются (иногда). Например, ssCpuRawWait имеет следующее предупреждение:

Этот объект не будет реализован на хостах, где базовая операционная система не измеряет эту конкретную метрику ЦП. Это время также может быть включено в ssCpuRawSystem(52) счетчик

Некоторая помощь будет оценена. Везде, кажется, просто говорят, что% устарела, потому что он может быть получен, но я не нашел нигде, чтобы показать официальный стандартный способ выполнения этого вывода.

Второй компонент заключается в том, что эти "галочки" кажутся накопительными, а не в течение некоторого периода времени. Как мне выбрать значения за некоторый период времени?

Основная информация, которую я хочу получить: % пользователя, системы, простоя, приятного (и в идеале воровства, хотя для этого не существует стандартного MIB) "в настоящее время" (за последние 1–60 с, вероятно, было бы достаточно, с предпочтением меньших временных интервалов).

0 ответов

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