@tvoyadres

Как ускорить apache в связке nginx?

когда запускаю команду

netstat -na | grep ":443\ " | wc -l

и когда количество >= 1000 apache начитает тормозить, не успевает обрабатывать php запросы походу, затыка в mysql вроде нет проверяю через mytop, ngnix вроде тоже справляется, все данные на ssd.

сервер двухпроцессорный xeon 2690 v2, mem 128GB

лимиты на файлы все подняты

<IfModule prefork.c>
StartServers 256
MinSpareServers 256
MaxSpareServers 1024
ServerLimit 8192
MaxClients 4096
MaxRequestsPerChild 32768 
</IfModule>


я бы сервак поменял, но новый tredripper еще не вышел
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
@tvoyadres Автор вопроса
Вопрос решен, меня направили в нужное направление, дальше откопал решение

нужно выставить минимум, так как nginx почти запросы тащит через себя

StartServers 16 MinSpareServers 16

снять ограничение MaxRequestsPerChild 0 это нарыл на рекомендации за бугром, у меня их не хватало я бы поставил MaxRequestsPerChild 1000000, но информации не нарыл, что так можно.

<IfModule prefork.c>
StartServers 16
MinSpareServers 16
MaxSpareServers 32
ServerLimit 16384
MaxClients 8192
MaxRequestsPerChild 0 
</IfModule>


с этой командой

netstat -na | grep ":8080\ " | wc -l

выводит 4300 соединений, думаю с таким настройками выдержит и 10000 соединений
не понятно, только зачем некоторые люди рекомендуют PHP-FM, если apache справляется, если правильно настроить. Жаль, что ни где нет нормальных рекомендаций, надеюсь мое исследование кому-нибудь поможет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Поставить fpm, добавить кеширование
Ответ написан
Комментировать
@hell
В общем случае таких тормозов быть не должно на вашем железе.
Попробуйте собрать статистику запросов и попрогонять их по одному через siedge с конкуренцией 2000.
И врядли fpm даст значительную прибавку - на реальных приложениях обе связки работают примерно одинаково, разумеется, если апач настроен правильно.
Правильно, в данном случае, без лишних модулей, без .htaccess, AllowOverride None и т.д.
Посмотрите, что творится с пользовательскими сессиями - они могут чрезмерно плодиться.
Ну и коннекты к БД - возможно там стоит какое-то ограничение.

То есть в принципе, вам надо проделать примерно следующее:
1) Почистить апач от всего лишнего.
2) Сделать тестовую страничку, перекинув данные из БД в масссив и попробовать прогнать ее через siedge (ab в данном случае не катит)
3) Если страничка будет отрабатывать без тормозов, пустить ее же, но уже в динамике с данными из СУБД. Сравнить результаты
4) Если и тут все пойдет без тормозов, собрать в логах нгинкс реальные запросы и попробовать попрогонять их по отдельности через siedge - возможно удастся найти конкретные страницы, на которых все ломается.
5) Смотреть и профилировать код
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы