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