На этот вопрос уже есть ответ:
Я наблюдаю за сервером Cpanel (centos) с двухъядерным ЦП (4 виртуальных ядра ЦП), и кажется, что он перегружен, потому что я получил эти значения с помощью top
:
load average: 11.80, 13.30, 13.02
Cpu(s): 42.2%us, 11.7%sy, 0.0%ni, 35.6%id, 10.1%wa, 0.1%hi, 0.3%si, 0.0%st
Но если я посмотрю на список процессов (используя top или ps), ни один процесс не использует более 1%
Кроме того, сумма использования процессора процессом (%) равна 4, и если я даже предполагаю, что значения 0% являются округленными числами, и измените его на 0,04 (округленное с использованием 1 десятичной цифры равно 0), сумма равна 11 (все еще меньше 100%).
Как я могу правильно интерпретировать эти данные? Существуют ли какие-то скрытые процессы, которые перегружают мой процессор.
В Linux заблокированные процессы также влияют на среднюю нагрузку. Команда ps -Al
выводит список всех процессов. Во втором столбце (S для состояния) его вывода вы найдете состояния процесса. Чаще всего у меня есть процессы, ожидающие диска "D", которые засчитываются в среднюю загрузку.
Полный список состояний на странице руководства ps:
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being
traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its
parent.
Пример вывода
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 1 0 0 80 0 - 4906 poll_s ? 00:00:23 init 1 S 0 2 0 0 80 0 - 0 kthrea ? 00:00:02 kthreadd 1 R 0 3 0 99 80 0 - 0 ? 01:00:02 runner 1 D 0 4 0 1 80 0 - 0 ? 01:00:02 loader
Если бы это были ваши единственные процессы, мы см. загрузку около 2, 1 для "бегуна" CPU и еще 1 для загрузчика, ожидающего диска.
Очень точна информация, доступная в Wikipedia
На простаивающем компьютере есть нагрузка число 0. Каждый процесс, использующий или ожидающий для ЦП (очередь готовности или очередь выполнения) увеличивает номер загрузки на 1. Большинство систем UNIX учитывают только процессы в рабочем (на ЦП) или работающем (ожидающем ЦП) состояниях. Однако Linux также включает процессы в состоянии непрерывного сна (обычно ждут активности), что может привести к заметно разным результатам, если многие процессы остаются заблокированными при вводе-выводе из-за занятости или остановки ввода-вывода система. 1 Это, например, включает блокировку процессов из-за Сбой сервера NFS или медленный носитель (например, устройства хранения USB 1.x). Такие обстоятельства могут привести к завышению средней нагрузки, что не отражает фактического увеличения использования ЦП (но все же дает представление о как долго пользователи должны ждать).
Питер прав. Но это не дало ответа на ваши вопросы. Дайте ему 12 логических процессоров, чтобы нагрузка упала ниже количества процессоров. Таким образом, ни одному процессу или потоку не придется ждать дополнительных циклов процессора, чтобы получить время его выполнения.
Включите вид потока сверху тоже.
Я подозреваю, что у вас там есть несколько многопоточных процессов.
11% Системное время может указывать на узкое место в сети.
.Верхняя информация, которую вы предоставили, не обязательно означает перегрузку:
Или, скорее, если под перегрузкой вы имеете в виду какое-то ограничение, это могут быть различные аспекты: ограничение ЦП, ограничения сетевого и / или дискового ввода-вывода, ограничения использования памяти и т. д.
Вы не должны пытаться сопоставить различные представления загрузки / использования ЦП - они обычно означают разные вещи, и представления также собираются с разными отметками времени (сбор статистики не атомарный):