У меня 4 веб-сервера, 2 сервера баз данных (чтение и запись), Redis и балансировщик нагрузки. Я использую PHP 7.0, Apache2 и MySQL 5.7, однако, когда я провожу нагрузочные тесты с 3000 пользователей, которые просматривают одновременно, серверы выходят из строя один за другим.
Серверы Apache сильны, у каждого из них 32 ГБ оперативной памяти, и, к сожалению, все они достигают максимального использования оперативной памяти.
Мы внесли много изменений в код, однако мне это кажется неправильным, мои хостинг-провайдеры не могут помочь мне в дальнейшей настройке моего сервера, поскольку они говорят, что это лучшее, что они могут сделать, и здесь мне нужны ваши помощь - что нам не хватает? какие конфигурации в PHP / Apache / MySQL следует установить?
Я хотел бы пояснить, что сайт хорошо работает, скажем, для 300 клиентов, но по мере того, как их посещает все больше и больше клиентов, время ответа достигает 50 секунд на запрос, что действительно странно, как только 400 клиентов заставляют мой сервер отвечать так медленно?
Я действительно в отчаянии и в замешательстве, на что нам смотреть?
Большое спасибо.
Прошлым летом у нас было даже 6000. Как 4 сервера с балансировщиком нагрузки не обрабатывают такие запросы?
Так что же изменилось? Чтобы ответить на вопрос, почти всегда из-за того, что он увяз в обработке внутреннего кода, а иногда из-за таких вещей, как исчерпание сокета tcp, а в других случаях это просто ограничения пула / и т. Д. Между apache и php.
Следуйте этому процессу:
"Как я могу получить невзрачное приложение php встречаться Икс ориентир? " очень широкий вопрос, но процесс обычно заключается в том, чтобы статическое обслуживание вашего внешнего интерфейса превышало ваши требования, а затем добавляло свой внутренний код в смесь. Либо устраните медлительность в коде серверной части, либо устраните ее.
Как только вы начнете поражать тысячи одновременный пользователей .. Вы собираетесь освежить некоторые ограничения (скорость файловой системы, память, скорость процессора, задержка связи, неэффективный код wordpress и медленные вызовы базы данных, а также тонна переключения контекста на процессоре), которые будут объединять и быстро привести к экспоненциальному ухудшению качества обслуживания.