Мне было интересно, сталкивался ли кто-нибудь из вас с такой проблемой, что заявленная нагрузка на сервер действительно высока, хотя ни один из параметров, похоже, не указывает на то, что он вообще занят. Мне нужно было бы проверить это еще раз, но я думаю, что это произойдет только после того, как я завожу пассажира. Я нахожусь на выделенном виртуальном хосте.
Какие-нибудь советы о том, почему это происходит, или идеи, как отладить это значение нагрузки? Это мое главное чтение, при необходимости я могу предоставить другую информацию.
top - 13:34:38 up 122 days, 19:15, 1 user, load average: 2.44, 2.02, 1.85
Tasks: 51 total, 4 running, 47 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.7%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1048576k total, 797196k used, 251380k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
Спасибо за ваш вклад, поскольку оказалось, что правильный ответ (и ключевой в моем вопросе) заключался в том, что я использую виртуальный выделенный сервер. На сервере было 0,6 процессорного модуля (то есть 1,2 ГГц из 2 ГГц Xeon). Это вызвало странные показания в моем топовом программном обеспечении для мониторинга работоспособности сервера (новый rpm-пакет, на этот раз названный на этот раз «украденным» в графике использования процессора). Теперь я обновился до полноценного VPS, и нагрузка упала до надлежащего значения ~ 0,07.
Когда вы видите высокую нагрузку, но низкое использование ЦП, это означает, что узким местом является что-то еще. (Как сказал Янне, средняя загрузка 2 не особенно высока, но неплохо было бы глубоко понять, что делает ваша система.)
Доступ к диску является наиболее частой причиной высокой средней нагрузки при низкой загрузке ЦП. Вы можете увидеть некоторую статистику использования диска с помощью vmstat
, iostat
или dstat
в зависимости от того, что вы установили.
Для сравнения, один из моих довольно загруженных веб-серверов показывает столбец bi (считывание блока) в vmstat со скоростью 100 за 30 секунд, а столбец bo (выписанные блоки) как 3000 за 30 секунд. Средняя нагрузка на этот сервер составляет около 1.
Другая возможная причина - большое количество процессов, которые выполняют очень мало работы. Большинство серверов, которые я вижу, имеют от 100 до 200 процессов. Если на вашем сервере 500 или 1000, это может привести к высокой средней нагрузке.
Опять же, для сравнения у нас недавно было большое количество электронных писем в нашей почтовой очереди, что привело к созданию около 1000 процессов для отправки электронных писем. Это привело к увеличению средней нагрузки примерно до 70 и затруднило использование системы.
Я обычно вижу это, когда один или два процесса входят в состояние "D". Это означает, что они ждут ввода-вывода от чего-то. Возможно, это может быть общий ресурс NFS, срок действия которого истек, или что-то подобное. Если это единственные два процесса, ожидающие на этом устройстве хранения, ваш% CPU в состоянии IOWAIT не сильно увеличится.
Чтобы было ясно, средняя загрузка 2,44 может быть высокой или низкой в зависимости от того, сколько потоков ЦП имеет ваша система. Если у вас двухъядерный Xeon с гиперпоточностью, у вас будет 4 потока ЦП. Средняя загрузка до 4,0 означает, что система работает на полную мощность или ниже ее. Средняя загрузка такой системы выше 4,0 означает, что в очереди выполнения больше процессов, чем потоков ЦП.
Средняя загрузка 2 действительно невысока, на самом деле она низкая.
Вы где-то наблюдаете реальные проблемы с производительностью?