Shtsh 29.10.2011 11:28
Есть проблема! — nginx, php-fpm, таймауты
Такая ситуация:Есть нагруженный веб-сервер (запросов 300 в секунду), где крутится memcached, php-fpm, nginx
Вчера вечером ставл виснуть php-fpm (время зависит от нагрузки, сегодня с утра, коогда пошли пользователи стал виснуть через пару минут)
Раньше такое случалось, если тупил сервер БД, но это маловероятно, так как падает всё и с минимальной нагрузкой.
Для придания работоспособности я заставил его убиваться, если он тупит, в результате всё заработало. Но сейчас по даннным мунина заметно больше форков, чем обычно (/etc/php-fpm.conf)
1 |
|
Но опять же, это всё лечение симптомов. Нужно найти причину
cooler 29.10.2011 11:49 #
+ 1 -
Первым делом избавься от лишних TCP-сессий, переведи php-fpm на сокет.
Мало соединений.
При переходе на сокет не ляжет? Мне казалось, что с сокетом работа медленней и меньше возможных соединений.
1 |
# netstat -an|awk '/tcp/ {print $6}'| sort | uniq -c
|
При переходе на сокет не ляжет? Мне казалось, что с сокетом работа медленней и меньше возможных соединений.
Ну у меня на практике после перевода на сокет стало получше. Но никак не медленней.
И, кстати, upstream timeout это надо смотреть nginx`овый keepalive_timeout. У меня большинство таких отвалов было из-за днс. Пых пытался отрезолвить, и висел до таймаута, а у nginx стояло
keepalive_timeout 30, следовательно стандартный таймаут в 60 секунд не попадал в рамки nginx`ового таймаута и получали 504 gateway timeout и upstream timeout в логах.
И, кстати, upstream timeout это надо смотреть nginx`овый keepalive_timeout. У меня большинство таких отвалов было из-за днс. Пых пытался отрезолвить, и висел до таймаута, а у nginx стояло
keepalive_timeout 30, следовательно стандартный таймаут в 60 секунд не попадал в рамки nginx`ового таймаута и получали 504 gateway timeout и upstream timeout в логах.
У меня php запускается на этом же сервере на 127.0.0.1:9000
По идее, php не должен имена резолвить.
По идее, php не должен имена резолвить.
Вообще, этому виной выкладка плохо протестированного кода, судя по всему.
Пошёл за помощбю на ЛОР? неужели местное всесильное сообщество не помогло?
Стоит отметить, в последние пару лет там люди стали довольно адекватными. Главное - привыкнуть к манере общения. К тому же, там есть люди, очень хорошо разбирающиеся в теме.