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

1574
Bo Jeanes

Согласно http://net-snmp.sourceforge.net/docs/mibs/ucdavis.html#scalar_notcurrent 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-х годов, вероятно, было бы достаточно, с предпочтением меньших временных интервалов).

1

0 ответов на вопрос

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