upstream fastcgi keepalive. Таинственные 40мс
Panichev Oleg
panichev на rutarget.ru
Пт Сен 4 10:33:18 UTC 2020
Добрый день.
При включении keepalive в секции upstream для fastcgi серверов
upstream_response_time увеличивается на 40мс при нагрузке. Это
достаточно четкий шаг, реальный ответ бэкендову нас - единицы
миллисекунд, но nginx показывает на 40мс больше. Apache benchmark tool
показывает тоже самое.
С чем связана именно такая задержка? Изменения таймаутов, количества
реквестов на эти 40мс не влияют, в логе всегда либо единицы миллисекунд
(время ответа для простых соединений, без включения keepalive), либо
сразу 40мс+время простого запроса. Есть ли способ измерять реальное
время ответа от бэкенда при использовании keepalive?
Спасибо, ниже конфиги и результаты ab.
===========================================================
Пробовал на свежем нджинксе и стартовой странице php-fpm:
Проверка с keepalive:
upstream sync {
server localhost:9000;
keepalive 8;
}
..
location ~ \.php$ {
fastcgi_pass sync;
fastcgi_keep_conn on;
...
Percentage of the requests served within a certain time (ms)
50% 3
66% 3
75% 4
80% 42
90% 43
95% 44
98% 44
99% 45
100% 52 (longest request)
==========================
Без keepalive тот же апстрим:
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 2
98% 2
99% 3
100% 7 (longest request)
Это повторяется на разных приложениях и разных фронтендах (см. скриншот)
----------- следущая часть -----------
Вложение не в текстовом формате было извлечено…
Имя: 2020-09-04_13-28.png
Тип: image/png
Размер: 10980 байтов
Описание: отсутствует
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20200904/88c12fed/attachment-0001.png>
Подробная информация о списке рассылки nginx-ru