Сервер работает под управлением CentOS с веб сервером Apache2.
:Железо : 8 гигабайт памяти, процессор intel два ядра по 2.40GHz, RAID массив на 250 гигабайтПериодически веб сервер начинает создавать сверх высокую нагрузку на сервер.
Закономерности между появлениями нагрузок не найдено.
В обычном режиме количество apache процессов: 30-50.
Во время нагрузки количество процессов начинает пропорционально увеличиваться
сначала 100 потом 150 и тд. до тех пор пока я не перезапускаю веб сервер.
После перезапуска веб сервера нагрузка падает и все работает в штатном режиме.
Команда netstat в процессе нагрузки не показывает каких либо DDOS атак на веб сервер.
На сервере около 600 сайтов. Особо крупных проектов нет. Самый посещаемый ресурс получает около 1000 уникальных посетителей за сутки.
В файле конфигурации прописывал /usr/local/apache/conf/includes/pre_virtualhost_2.conf
MaxSpareServers 30
MinSpareServers 10
StartServers 30
ServerLimit 200
MaxClients 200
KeepAlive On
KeepAliveTimeout 7
MaxKeepAliveRequests 50
TimeOut 90
MaxRequestsPerChild 500
До применения этих параметров веб сервер также периодически зависал.
Версия Apache 2.2
В Apache установлен:
mod_php
mod_bwlimited (учет траффика на виртуальный хост)
eAccelerator
mod_security
mod_status
http://twitpic.com/1alu9r - Вывод top в тот момент когда нагружен сервер
Вопрос: Как определить почему начинает зависать Апач ? Менял настройки в apache - не помогло.
Тюнинговал Mysql - думал что из за его медленной работы apache подвисает выдача страниц - тоже не помогло.
В момент нагрузки на сервер mod_status не позволяет вывести текущие соединения так как все процессы заняты apache.