Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#219 closed defect (invalid)

nginx - время обработки на стороне сервера на 200 мс дольше, чем внутри fastcgi.

Reported by: Аркадий Кулев Owned by: somebody
Priority: minor Milestone:
Component: nginx-core Version: 1.2.x
Keywords: Cc:
uname -a: Linux localhost 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux
nginx -V: nginx/1.2.1

Description

Здравствуйте,

nginx 1.2.1, используется для ресайза изображений. Поступает запрос на файл и если его нет в определенной директории, запрос обрабатывается php-fpm.

я веду учет времени обработки запроса и заметил, что время, засеченное внутри скрипта в php-fpm (используется apc) на 200 мс ниже, чем время обработки в nginx.

Я прикрепил график. Основываюсь на $upstream_response_time (анализирую лог файл каждую минуту, высчитываю среднее).

Attachments (1)

graph.png (71.3 KB ) - added by Аркадий Кулев 12 years ago.
разница во времени между nginx и php скриптом

Download all attachments as: .zip

Change History (4)

by Аркадий Кулев, 12 years ago

Attachment: graph.png added

разница во времени между nginx и php скриптом

comment:1 by Maxim Dounin, 12 years ago

Resolution: invalid
Status: newclosed

Это нормально - код на php видит только часть обработки запроса внутри php, и совершенно не видит задержки, связанные с маршрутом до php, в частности - ожидание в listen queue.

comment:2 by Аркадий Кулев, 12 years ago

У меня стоит локальный php-fpm с 200 процессами. Из них используется только 50.
Там нет bottleneck. Может еще мысли есть?

comment:3 by Maxim Dounin, 12 years ago

Я бы начал с простого - посмотрел, что конкретно происходит "on the wire" tcpdump'ом, померил время между syn'ом со стороны nginx'а и fin'ом со стороны php. Соответственно будет видно чьи цифры ближе к реальности, и соответственно в какую сторону копать в поисках причин погрешности.

Но вообще это неправильное место для таких вопросов. Если вы хотите, чтобы вам помогли разобраться, что происходит - добро пожаловать в список рассылки или в платную поддержку. Сюда следует сообщать, если вы уже нашли причину, и она оказалась ошибкой в nginx'е. :)

Note: See TracTickets for help on using tickets.