Re: upstream fastcgi keepalive. Таинственные 40мс

Panichev Oleg panichev на rutarget.ru
Пт Сен 4 11:22:27 UTC 2020


В данном случае, с пустым конфигом и 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
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20200904/77fb532f/attachment.htm>


Подробная информация о списке рассылки nginx-ru