2

Я думал, что средняя загрузка по времени безотказной работы и суммирование% 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 ответ1

9

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .