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

Сбой сервера: слишком много подключений?

У меня есть сервер с примерно 500 активными подключениями одновременно (это для очень загруженного веб-сайта). К сожалению, Apache приводит к сбою всего сервера примерно каждый час. Сервер имеет 8 ГБ ОЗУ и четырехъядерный процессор Xeon, так что, насколько мне известно, этого должно быть достаточно для обработки количества подключений. Я подозреваю, что моя конфигурация Apache может нуждаться в некоторой оптимизации. Вот текущая конфигурация:

StartServers          2
MinSpareThreads      25
MaxSpareThreads      75 
ThreadLimit          64
ThreadsPerChild      25
MaxClients           400
MaxRequestsPerChild  20000

Любые советы (не только относящиеся к Apache) ОЧЕНЬ благодарны!

У вас выходит из строя ваша машина или сервер Apache?

Если первое, то я бы подумал, что это может быть неисправное оборудование (память).

Если второй, попробуйте использовать инструменты мониторинга, например Мунин чтобы узнать, что происходит в какие промежутки времени и какова нагрузка / нагрузка на ваш сервер. Также проверьте свои журналы ошибок, чтобы узнать, что происходит.

вам следует начать с построения графика использования ваших ресурсов (например, нагрузки, памяти, свопинга ...), чтобы получить представление о том, что на самом деле происходит.

Взгляните на системные журналы и журналы apache и посмотрите, есть ли какие-то «ненормальные» сообщения прямо перед сбоем.

Из отрывка из вашей конфигурации я предполагаю, что вы используете рабочий mpm, это выглядит довольно нормально, сама по себе эта конфигурация не приведет к сбою.

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

Вы используете какой-нибудь язык сценариев, может быть, PHP?

Предыстория моего вопроса заключается в том, что у меня было что-то подобное на одном сервере с Apache и PHP. В конце концов, это был не Apache, убивающий сервер, а PHP, запущенный в OOM, убивающий практически жизненно важные процессы, и ЭТО убило сервер (для меня).

Проверьте мой ответ в этой теме для обходного пути OOM. Возможно, также проверьте файлы журнала вашего сервера на наличие записей OOM.