Средняя загрузка и общий%CPU в верхней части
Я думал, что средняя загрузка по времени безотказной работы и суммирование%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 }'
?
Спасибо и всего наилучшего!
1 ответ
Причина, по которой ваш% ЦП и средняя нагрузка не совпадают, заключается в том, что они представляют собой два совершенно разных значения. % CPU - это процент процессора, используемого процессом. Среднее значение загрузки - это средневзвешенное значение процессов в очереди выполнения за 1, 5 и 15 минут.
Если вы обеспокоены тем, сколько ЦП вы используете (используете ли вы свой ЦП полностью), ваш подсчет результатов top будет работать хорошо. Вы можете запустить это время от времени и записать значение (или использовать sar
, который сделает это за вас).
Высокая средняя загрузка означает, что в очереди на запуск много процессов - многие процессы готовы и ожидают запуска. Высокая нагрузка автоматически не означает большой загрузки процессора.
В Википедии есть хорошая статья, описывающая среднюю нагрузку и различия между загрузкой ЦП и использованием ЦП: http://en.wikipedia.org/wiki/Load_Average