@nollin

Почему WEB сервер не справляется с нагрузкой?

Здравствуйте! Столкнулся со следующей проблемой:
Имеется выделенный сервер:
c2c4dd63ac864688bae36ed705abc229.png
На нем подняты:
Nginx версии 1.9.2.1 Lizard для Windows с расширенными возможностями (нареканий нет - пашет в 16 лопат и не потеет);
Апач: Server Version: Apache/2.4.18 (Win64), Server MPM: WinNT, Apache Lounge VC11 Server built: Dec 11 2015 13:02:26
PHP: PHP/5.6.17 (Win64);
Memcache Version 1.2.6;
MySQL Server 5.7 (Win64);
Проект высоконагруженный - игра-шутер для соц сетей с ежедневным онлайном ~10К юзверей (только клиентов, не считая игровых серверов, которые тоже дергают сервак на предмет обновления статуса и загрузки профилей игроков).
Имеем следующую проблему: каждые 30 секунд крашится апач с ошибкой в каком либо модуле:
88cc343203114b36a6f381df77542dc1.pngadd25bfdaef74018a77450e0e76df48e.png4428a713b35d40aeada583438590ed91.png3f1b16e2b3f04c94b3b6880a7375a1e2.png
Как определить нагрузку на сервер без понятия, но могу прикрепить скрин server-status от Apache:
381a6baaac754148b8f7d5a2b1102ae2.png
В диспетчере задач показывает общую нагрузку на проц в пределах 40%, на память в пределах 25%.
Вот конфиги элементов:
Конфиги
Опыта в администрировании и настройке стабильных и отказоустойчивых под нагрузками веб серверов практически нет. Пробовал перенастроить на Nginx + PHP-FPM, но ничего не вышло - после 1 минуты работы вылез крашлог php-cgi. Вернул обратно Apache - он хоть и падает, но сразу самоподнимается.
Если кто сталкивался с подобной проблемой - посоветуйте, пожалуйста, в какую сторону копать. LAMP не предлагать по причине отсутствия опыта настройки сервера даже под виндой, не то что под линукс системой. Да и сменить ось на выделенном сервере в другом городе по удаленке я считаю довольно проблемной затеей. Не ругайте строго, но по моему обывательскому мнению в данной конфигурации сервак должен держать нагрузку до 20-30К юзверей, но не держит.
  • Вопрос задан
  • 812 просмотров
Пригласить эксперта
Ответы на вопрос 2
nazarpc
@nazarpc
Open Source enthusiast
Apache вам не нужен, настраивайте Nginx+php-fpm. php-cgi это совсем другой sapi, он не должен иметь никакого отношения к Nginx и php-fpm.

А вообще поднимайте на отдельном сервере (на том же ноутбуке), подключайте профайлер (xdebug, blackfire, etc.) и тестируйте - смотрите где тормозит, попробуйте нагрузить через Apache Benchmark. А то ваши "сервак должен держать нагрузку до 20-30К юзверей" это безосновательные пальцем в небо.
Ответ написан
E5-2650 поддерживает гипертрединг, это значит что количество реальных ядер вдвое меньше, чем вы видите и загрузка в 40% может означать реальную загрузку в 80%, что слишком много ( уровень выше 60% обычно считают недопустимым).

Крэши апача вряд ли напрямую связаны с нагрузкой, если в вашей игре есть что-то, что реализовано как fcgi, ActiveX или другим образом грузит бинарный код в процесс Apache, то проблему скорей всего надо искать в вашем коде, где-то портится куча. Так же крэши могут быть вызваны сбойным модулем памяти, особенно если крэши в разных местах. Оттестируйте память, снижайте нагрузку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽