Re: upstream fastcgi keepalive. Таинственные 40мс
Panichev Oleg
panichev на rutarget.ru
Пт Сен 4 12:45:25 UTC 2020
Пинг в продакшн быстрый: rtt min/avg/max/mdev = 0.054/0.095/0.131/0.027 ms
Примеры, приведенные выше, вообще делаются на одном сервере (localhost:9000)
Протокол fastcgi.
On 9/4/20 3:29 PM, fox wrote:
> Пинг до сервера какой? Протокол http 1.1?
>
>
> 04.09.2020 18:22, Panichev Oleg пишет:
>> В данном случае, с пустым конфигом и php-fpm, зависимости либо нет, либо
>> она незаметна:
>>
>>
>> keepalive 1:
>>
>> Percentage of the requests served within a certain time (ms)
>> 50% 3
>> 66% 3
>> 75% 41
>> 80% 43
>> 90% 44
>> 95% 44
>> 98% 44
>> 99% 44
>> 100% 55 (longest request)
>>
>> keepalive 100:
>>
>> 50% 3
>> 66% 3
>> 75% 4
>> 80% 42
>> 90% 43
>> 95% 44
>> 98% 44
>> 99% 45
>>
>> 100% 47 (longest request)
>>
>>
>>
>> On 9/4/20 2:07 PM, Сергей Олегович wrote:
>>> Интересно, а есть ли зависимость между количеством keepalive и временем?
>>>
>>> пт, 4 сент. 2020 г. в 13:33, Panichev Oleg <panichev на rutarget.ru
>>> <mailto:panichev на rutarget.ru>>:
>>>
>>> Добрый день.
>>>
>>>
>>> При включении 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)
>>>
>>> Это повторяется на разных приложениях и разных фронтендах (см.
>>> скриншот)
>>>
>>>
>>>
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru на nginx.org <mailto:nginx-ru на nginx.org>
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>>
>>>
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru на nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
Подробная информация о списке рассылки nginx-ru