Описание:
Я столкнулся с неприятной проблемой в моем недавно развернутом приложении PHP Laravel, настроенном с помощью Nginx и работающем на сервере, оснащенном 2-ядерными процессорами и 8 ГБ оперативной памяти. и балансировщики нагрузки. При выполнении одного вызова API время ответа составляет удовлетворительные 200 мс. Однако при больших одновременных нагрузках запросов (скажем, 100 вызовов API в секунду) время ответа резко возрастает до неприемлемых 8000 мс. Такое существенное несоответствие между одиночными и одновременными вызовами API сбивает с толку.
Настройка сервера:
На сервере установлено примерно 10 000 рабочих процессов с состоянием установлено значение «авто».
Настройка Nginx была выполнена менеджером серверов Azure.
Принятые шаги:
Использовались Postman Runner и Apache JMeter для тестирование, оба дали схожие результаты.
Замечено, что хотя Telescope, инструмент отладки Laravel, продолжает отображать время ответа 200 мс, такие инструменты, как Postman, JMeter и запросы браузера, показывают увеличенное время ответа 8000 мс.
Просмотрел множество подобных вопросов по переполнению стека, но не нашел удовлетворительных решений.
Поведение процессора было проверено с помощью команды top, и оно оказалось нормальным.
Конкретные запросы:
Как я могу диагностировать и устранить значительное увеличение времени ответа при большой нагрузке одновременных запросов?
Есть ли способ проанализировать поведение сервера, прежде чем он достигнет файла public/index.php Laravel?Может ли проблема быть связана с конфигурацией Nginx, мощностью сервера или другим фактором?
Дополнительная информация:
Сервер демонстрирует высокую производительность при нормальные условия нагрузки, без видимых проблем.
Проблема становится очевидной только при большой нагрузке одновременных запросов.
Мне нужны рекомендации по определению источника проблемы и оптимизации производительности сервера для обеспечения согласованного ответа. раз независимо от параллелизма запросов.
Источник: https://stackoverflow.com/questions/781 ... urrent-req