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

Увеличение трафика приводит к сбою VPS из-за использования оперативной памяти

У меня есть VPS, который запускает несколько сайтов Opencart и по большей части очень хорошо выполняет задачу.

Спецификация:

ЦПУ
ПодлинныйIntel, Intel (R) Xeon (R) CPU E5-2665 0 @ 2,40 ГГц
Версия
Parallels Plesk Panel v11.5.30_build115130819.13 os_CentOS 6
Операционные системы
CentOS 6.2 (окончательная версия)
ОЗУ: 4ГБ

Однако у меня есть один клиент, который часто запускает популярные рекламные акции, что приводит к увеличению посещаемости их сайта, которая может составлять около 3000-4000 посетителей в течение 1-2 часов, многие из которых пытаются завершить процесс заказа.

Когда эти рекламные акции запускаются, я могу наблюдать, как объем оперативной памяти уменьшается до точки, когда она достигает 100% использования и приводит к потере всех сайтов и даже SSH-доступа к VPS, а журнал ошибок показывает:

[ошибка] (12) Невозможно выделить память: mod_fcgid: невозможно запустить / var / www / cgi-bin / cgi_wrapper / cgi_wrapper [предупреждение] (12) Невозможно выделить память: mod_fcgid: создать процесс / var / www / cgi-bin / cgi_wrapper / ошибка cgi_wrapper

Перезапуск Apache или VPS не помогает, и использование ОЗУ возвращается в норму только после того, как люди сдаются и перестают постоянно заходить на сайт. Даже увеличение ОЗУ до 6 ГБ не решило проблему, но я предполагаю, что это будет то же самое с любым разумным объемом ОЗУ.

Я сообщил об этом своему хозяину, который мне не помог. Они сказали, что оптимизировали работу Apache, но я все еще вижу ту же проблему с каждой рекламной информацией, вызывающей полное отключение.

После их оптимизации моя конфигурация Apache выглядит так:

IfModule prefork.c
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 80
MaxClients 200
MaxRequestsPerChild 400

IfModule worker.c
StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 4
Темы для ребенка 25
MaxRequestsPerChild 0

Я также только что заметил, что они отключили KeepAlive.

У этого же клиента в ближайшем будущем будет проводиться промо-акция, и я хотел бы разобраться в этом, чтобы сайт оставался активным на всем протяжении.

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

Заранее спасибо.

Вы используете APC? Если нет, я бы установил это и посмотрел, улучшится ли ситуация. Я бы также посмотрел на конфигурации php fcgi. Поскольку php запускается отдельно от apache под fcgi, я не верю, что ваши проблемы связаны с apache.

Я предлагаю одно или несколько из следующего:

  • Переместите этого клиента на отдельный VPS.
  • Сильно уменьшите MaxClients, попробуйте, например, 10
  • Используйте nginx вместо Apache или лак перед Apache
  • Используйте cloudflare