Проценты процессора Linux не составляют 100%

Всякий раз, когда я пытаюсь сложить проценты использования ЦП от таких команд, как top или mpstat и, в частности, службы collectd, я не могу получить точное 100% использование ЦП.

Например, top результаты тестового сервера на Amazon EC2:

Cpu(s): 13.6%us, 31.6%sy,  0.0%ni, 53.2%id,  0.0%wa,  0.0%hi,  0.0%si,  1.7%st

Независимо от того, как я складываю проценты, я никогда не получаю 100% процессора, уж точно не каким-либо логическим образом. В основном это похоже на ошибки округления; 100,1% или 99,9%, но иногда я получаю более 110%. Обычно это происходит, когда steal относительно высокое, например. одна ситуация из collectd сообщила о ~ 21,44% кражи и ~ 88% простоя, только у этих двух уже более 100%. Я понимаю, что ni (приятный) также учитывается в us (пользователь), поэтому мне не следует его добавлять, но это все равно не работает.

Кто-нибудь знает, как сложить их до 100% или как интерпретировать исключительные случаи, о которых иногда сообщает collectd?


person Martijn    schedule 15.08.2012    source источник
comment
top точно не сообщает об использовании ЦП с точки зрения того, сколько ЦП используется, он указывает, сколько одного ЦП потребуется для запуска всех процессов. У вас может быть больше 100%. Смотрите темы здесь: superuser.com/questions/174660/ и serverfault.com/questions/127059/   -  person wkl    schedule 16.08.2012
comment
@birryree Вы, конечно, правы. Если у вас было два ядра, общий процент загрузки ЦП в top может достигать 200%. Я забыл упомянуть VPS, это проверено, у него только одно ядро. Однако в collectd статистика разделена по отдельным ядрам.   -  person Martijn    schedule 16.08.2012


Ответы (2)


collectdtop, htop, vmstat или любая другая подобная утилита) сообщает среднее значение за интервал, и по природе ядра (из которого эти утилиты запрашивают свою статистику) обычно не использует математику с плавающей запятой и не обязательно пытается исчерпывающе учесть все, не может быть на 100% точным. Иногда все это будет составлять что-то меньше 100%, иногда больше. Он не предназначен для использования в целях аудита, это просто общее указание на то, на что тратится время.

person twalberg    schedule 15.08.2012

Подтверждаю, что это не связано с collectd, а с учётом ядра. Эта неточность особенно существенна в бестактных системах и/или состояниях дросселирования.

person faxmodem    schedule 12.03.2013