<div dir="ltr"><div dir="ltr">настройку keepalive_requests меняли ? или дефолт ?<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 29 мар. 2019 г. в 12:37, Panichev Oleg <<a href="mailto:panichev@segmento.ru">panichev@segmento.ru</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  

    
  
  <div bgcolor="#FFFFFF">
    <p> </p>
    <div class="gmail-m_4647396267043719418moz-text-html" lang="x-unicode">
      <p>Привет!<br>
      </p>
      <p><br>
        Проблема — высокое число timewait коннекшнов между nginx-proxy и
        бэкендами (до 30-40к), уровень трафика — десятки тысяч запросов
        в секунду извне, в основном короткие сессии на несколько
        запросов. Стек Centos 6 настроен на переиспользование tw sockets
        - tw_reuse=1, tcp_fin_timeout низкий (2с).</p>
      <p><br>
      </p>
      <p><font size="-1"><br>
          nginx/1.14.0, ~ 25 fastcgi backends<br>
        </font> <font size="-1"><br>
          upstream all {<br>
          hash $shard_key consistent;<br>
          server server10.local:9988 max_fails=0 fail_timeout=1s
          weight=100;<br>
          server server11.local:9988 max_fails=0 fail_timeout=1s
          weight=100;<br>
          ..<br>
          ..<br>
          ..<br>
          server server33.local:9988 max_fails=0 fail_timeout=1s
          weight=100;<br>
          server server34.local:9988 max_fails=0 fail_timeout=1s
          weight=100;<br>
          keepalive 100;<br>
          }<br>
        </font> <font size="-1"><br>
            fastcgi_pass all;<br>
            fastcgi_keep_conn on;<br>
            fastcgi_next_upstream off;<br>
            fastcgi_buffers 16 16k;<br>
            fastcgi_buffer_size 32k;<br>
            fastcgi_connect_timeout 20ms;<br>
            fastcgi_read_timeout 75ms;<br>
            fastcgi_intercept_errors on;<br>
            error_page 500 501 502 503 504 = $failover;</font></p>
      <p><br>
      </p>
      <p>Вероятно, высокое количество TW соединений вызвано
        поведением-настройкой Nginx, а именно необходимостью слать
        заглушку при достижении read timeout до апстрима (75мс), в этом
        случае Nginx закрывает соединение с апстримом принудительно (TCP
        RST), шлет фэиловер респонс клиенту и переоткрывает его снова.
        Мы видим около 30-35 RST пакетов в секунду в направлении
        бэкендов от Nginx, что соотвествует числу фейловеров в секунду
        по тому же апстриму согласно access/error.log.<br>
        <br>
        Вопрос — верны ли рассуждения о причинах высокого числа TW
        соединений между прокси и бэкендами и как их можно уменьшить
        средствами нжинкс, если это возможно?<br>
        <br>
        Спасибо</p>
    </div>
    <p><font size="2"><font face="arial, sans-serif">--</font></font></p>
    <p><font size="2"><font face="arial, sans-serif">С уважением, Олег<br>
        </font></font></p>
  </div>

_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>