средняя загрузка и общий% CPU в верхней части

9220
Tim

Я думал, что средняя загрузка по времени безотказной работы и суммирование% CPU всех запущенных процессов в верхней части (столбец # 9) должны совпадать. Но, похоже, это не так. Вот мои маленькие эксперименты:

На одном сервере:

$ top -b -n 1| awk '{ totuse = totuse + $9 } END { print totuse/100 }'; uptime  6.29  22:00:59 up 28 days, 7:03, 9 users, load average: 7.03, 5.81, 4.51` 

На другом сервере:

$ top -b -n 1| awk '{ totuse = totuse + $9 } END { print totuse/100 }'; uptime  4.93  22:01:37 up 29 days, 8:27, 17 users, load average: 18.83, 16.01, 13.86` 

Так почему же такая разница между ними? Какой из них более точно отражает использование процессоров?

Если я попытаюсь оценить интенсивность использования процессора моими запущенными процессами, это хороший способ:

top -b -n 1 | grep "tim"| awk '{ totuse = totuse + $9 } END { print totuse/100 }' 

?

Спасибо и всего наилучшего!

2

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

9
baumgart

Причина, по которой ваш% ЦП и средняя нагрузка не совпадают, заключается в том, что они представляют собой два совершенно разных значения. % CPU - это процент процессора, используемого процессом. Среднее значение загрузки - это средневзвешенное значение процессов в очереди выполнения за 1, 5 и 15 минут.

Если вы обеспокоены тем, сколько ЦП вы используете (используете ли вы свой ЦП полностью), ваш подсчет результатов top будет работать хорошо. Вы можете запустить это время от времени и записать значение (или использовать sar, который сделает это за вас).

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

В Википедии есть хорошая статья, описывающая среднюю нагрузку и различия между загрузкой процессора и использованием процессора: http://en.wikipedia.org/wiki/Load_Average

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