baltun
Администратор
- Сообщения
- 12.207
- Реакции
- 3.041
- Баллы
- 1.833
Буду краток проходим тестирование:
При этом nginx нормально настроен но падает с ошибкой 502 Bad Gateway. Причина либо превышено максимальное кол-во соединений к сокету либо максимальное кол-во не обработанных соединений к сокету.
Проверяем лимиты:
Нас интересуют строки:
Из-за них и происходит ошибка, так как максимальное кол-во соединений 128 а максимум не обработанных 200
Меняем лимиты, в файл /etc/sysctl.conf прописываем строки:
Применяем параметры:
Перезапускаем php-fpm:
Проводим тестирование:
Теперь nginx не падает и обрабатывает соединения, но появился вопрос как избавится от большого количества Failed requests не обработанных запросов.
Для этого требуется изменить параметр php-fpm.d:
Тогда при выполнении команды выше Failed requests будет в моем случае всего 1.
Код:
ab -k -c 200 -n 2000 https://localhost.ru
Проверяем лимиты:
Код:
sysctl net.core
Нас интересуют строки:
Код:
net.core.somaxconn = 128
net.core.netdev_max_backlog = 200
Меняем лимиты, в файл /etc/sysctl.conf прописываем строки:
Код:
net.core.somaxconn = 20000
net.core.netdev_max_backlog = 65535
fs.file-max = 500000
Применяем параметры:
Код:
sysctl -p
Перезапускаем php-fpm:
Код:
service php-fpm restart
Проводим тестирование:
Код:
ab -k -c 400 -n 2000 https://localhost.ru
Для этого требуется изменить параметр php-fpm.d:
Код:
pm.max_children = 100
Последнее редактирование: