Назад | Перейти на главную страницу

Задержка, Nginx и PHP-FPM

У меня есть динамический веб-сервис PHP с высокой нагрузкой, который я недавно переместил с Apache2 на Nginx и PHP-FPM. Я обнаружил, что с момента перехода средняя задержка запроса увеличилась с 0,5 до 1 с.

Я не уверен, где находится узкое место в системе, я надеялся уменьшить среднюю задержку, я знаю, что мои машины нет:

Nginx перенаправляет запросы в PHP-FPM через единственный сокет unix.

Вот часть моего файла nginx.conf:

worker_processes 2; # one for each processor
worker_rlimit_nofile 65536;
...
fastcgi_buffers 256 16k;
fastcgi_buffer_size 32k;
fastcgi_max_temp_file_size 0;
proxy_buffer_size 32k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 32k;

и мой php-fpm.conf

listen = /var/run/php5-fpm.sock
listen.backlog = 2048
pm = static
pm.max_children = 64

Что-нибудь выделяется как диковинное или ошибочное?

Использование единственной розетки должно быть нормальным.

Несколько вещей, которые нужно проверить:

  1. Какое максимальное количество дескрипторов файлов на процесс? ulimit -n Вы можете получить выгоду от увеличения этого.

  2. Включите ведение журнала в php-fpm, чтобы увидеть, сколько времени занимают запросы в соответствии с ним. В pool.d / www.conf:

    access.format = %R - %u %t "%m %r%Q%q" %s %f %{mili}d %{kilo}M %C%%

  3. Используйте модуль статуса, чтобы узнать, что происходит внутри nginx: http://wiki.nginx.org/HttpStubStatusModule