Назад | Перейти на главную страницу

Высокая загруженность рабочих Apache и высокая средняя нагрузка

У меня наблюдается всплеск средней нагрузки на веб-сервере, которым я управляю почти ежедневно, вот спецификации сервера:

Это VPS, на котором запущен debian 6, я установил apache, php и mysql через apt. Я не уверен, что я ошибся в конфигурации.

Сегодня средняя загрузка достигла такого пика, что сервер не смог обслуживать веб-приложение (WordPress). На скриншоте ниже показана наша система мониторинга серверов. Вы заметите, что высокая средняя загрузка коррелирует с большим количеством занятых рабочих Apache, а затем и память тоже исчерпывается.

После принудительной перезагрузки на сервере у меня по-прежнему средняя загрузка выше, чем обычно, несмотря на низкую загрузку ЦП. Следующие снимки экрана показывают htop а потом iotop.

Средняя нагрузка теперь> 6, вот что говорит статус сервера apache:

Я действительно не понимаю, как это расследовать. Может ли кто-нибудь помочь разобраться в этом.

Обновление 1

Я просматривал журналы ошибок apache и ни слова о чем-либо, превышающем максимальное время выполнения. Однако я получаю много из следующего ... начиная с того момента, как сервер начал загружаться:

::1 - - [24/Feb/2014:15:03:31 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:32 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:33 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:34 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:35 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:36 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:37 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:38 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:39 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"
::1 - - [24/Feb/2014:15:03:41 +0000] "OPTIONS * HTTP/1.0" 200 152 "-" "Apache/2.2.16 (Debian) (internal dummy connection)"

Обратите внимание на то, что все они примерно на 1 секунду позже предыдущего ... возможно, это что-то.

Обновление 2

Итак, я попросил хост-сервер переместить VPS на новый гипервизор, однако после этого он все еще имеет довольно высокий iowait. Я побежал iostat 1 и вот что я получил:

Помогает ли это определить проблему?

Похоже, у вас где-то есть скрипт, вызывающий нагрузку.

Начните с просмотра журнала ошибок apache и поиска времени max_execution или таймаутов. Перейдите к журналам доступа и найдите сценарии, к которым осуществляется доступ, которые могут вызывать зависание.

Есть несколько вещей, которые вы можете сделать для исследования проблемы, включая использование vmstat 2 (например, это будет отображать вывод ключевых ресурсов каждые 2 секунды).

Одна вещь, которая бросается в глаза, - это объем используемого свопа - 841 МБ на сервере с 3 гигабайтами - это очень много. Я подозреваю, что ваша система меняет местами, что приводит к очень высокому уровню ввода-вывода и увеличению нагрузки и т. Д. Если эта гипотеза верна, решение состоит в том, чтобы иметь дело с подкачкой.

Вам нужно либо выделить системе больше памяти, либо изменить способ обработки подкачки, либо и то, и другое. Я бы предложил начать с последнего - его легко сделать, просто настроив подкачку. Для этого введите echo 'vm.swappiness = 10' >> /etc/sysctl.conf, а затем "sysctl -p". Это заставит ЦП выполнять больше работы, но меньше менять местами. На многих виртуальных машинах дисковый ввод-вывод является узким местом, поэтому последствия довольно мгновенные и заметные.

Увеличение объема оперативной памяти также уменьшит объем подкачки и ускорит работу системы.