<div dir="ltr">Добрый вечер, коллеги<br><br>Помогите, пожалуйста, разобраться с тормозами при отдаче статики (файлы порядка 2-4 МБайт, около 700-1000 rps, keep-alive не используется со стороны клиента (!), 99% клиентских сессий - с localhost, отдача начинает тормозить где-то на 2.7-3 Gbps)<br>
<br>проблема выглядит как периодическое "залипание" загрузки файла на некоторый интервал (от долей секунды до нескольких секунд).<br><br>Конфигурация:<div><br><font face="courier new, monospace">worker_processes        16;<br>
worker_rlimit_nofile    21000;</font></div><div><font face="courier new, monospace">worker_priority         -5;<br>error_log         /var/log/nginx/error.log;<br>pid               /var/run/nginx.pid;<br>timer_resolution        100ms;<br>
events {<br>        worker_connections  10240;<br>        use epoll;<br>}</font></div><div><font face="courier new, monospace">http {<br>        sendfile                on;<br>#       sendfile_max_chunk      1m;<br>        open_file_cache max=10240 inactive=300s;<br>
        open_file_cache_valid 2000s;<br>        open_file_cache_min_uses 1;<br>        open_file_cache_errors on;<br>#       aio                             on;<br>#       directio                        4k;<br>#       directio_alignment              4k;<br>
#       output_buffers                  128 512k;<br>        keepalive_timeout       60;<br>        underscores_in_headers  on;<br>        server_tokens           off;<br>        tcp_nodelay             on;</font></div><div>
<font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">        ...</font></div><div><font face="courier new, monospace">}<br></font><br>Всё что закомментировано - проверялось без результата.<br>
<br>Для теста сделал tmpfs (чтобы исключить тормоза HDD), поставил рядом apache2 (чтобы минимизировать вероятность тормозов сетевого стека), с соседнего сервера делаю запрос на файл в tmpfs, apache выдаёт его стабильно с 24-25MBps, nginx тот же файл - в лучшем случае 12MBps,<br>
<br>Затыки также замечаются и на локалхосте. Скорость - от тех же 12MBps до 720MBps. Апач стабильно держит >1GBps. Вот пример времени выполнения запросов с локалхоста:</div><div><br></div><div><div><font face="courier new, monospace">real<span class="" style="white-space:pre">    </span>0m4.167s</font></div>
<div><font face="courier new, monospace">user<span class="" style="white-space:pre">    </span>0m0.008s</font></div><div><font face="courier new, monospace">sys<span class="" style="white-space:pre">       </span>0m0.042s</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">real<span class="" style="white-space:pre">  </span>0m2.085s</font></div><div><font face="courier new, monospace">user<span class="" style="white-space:pre">      </span>0m0.006s</font></div>
<div><font face="courier new, monospace">sys<span class="" style="white-space:pre">     </span>0m0.049s</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">real<span class="" style="white-space:pre">    </span>0m2.079s</font></div>
<div><font face="courier new, monospace">user<span class="" style="white-space:pre">    </span>0m0.007s</font></div><div><font face="courier new, monospace">sys<span class="" style="white-space:pre">       </span>0m0.055s</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">real<span class="" style="white-space:pre">  </span>0m0.623s</font></div><div><font face="courier new, monospace">user<span class="" style="white-space:pre">      </span>0m0.007s</font></div>
<div><font face="courier new, monospace">sys<span class="" style="white-space:pre">     </span>0m0.064s</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">real<span class="" style="white-space:pre">    </span>0m1.225s</font></div>
<div><font face="courier new, monospace">user<span class="" style="white-space:pre">    </span>0m0.004s</font></div><div><font face="courier new, monospace">sys<span class="" style="white-space:pre">       </span>0m0.052s</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">real<span class="" style="white-space:pre">  </span>0m0.333s</font></div><div><font face="courier new, monospace">user<span class="" style="white-space:pre">      </span>0m0.005s</font></div>
<div><font face="courier new, monospace">sys<span class="" style="white-space:pre">     </span>0m0.057s</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">real<span class="" style="white-space:pre">    </span>0m2.097s</font></div>
<div><font face="courier new, monospace">user<span class="" style="white-space:pre">    </span>0m0.004s</font></div><div><font face="courier new, monospace">sys<span class="" style="white-space:pre">       </span>0m0.058s</font></div>
<br><b><font face="arial, helvetica, sans-serif">ОС:</font></b><font face="courier new, monospace"> 2.6.32-358.6.2.el6.x86_64 #1 SMP Thu May 16 20:59:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux</font><br><br><font face="courier new, monospace">net.core.netdev_max_backlog=20480<br>
net.core.rmem_default=131072<br>net.core.rmem_max=1310720<br>net.core.somaxconn=2048<br>net.core.wmem_default=131072<br>net.core.wmem_max=1310720<br>net.ipv4.conf.all.accept_redirects=0<br>net.ipv4.conf.all.accept_source_route=0<br>
net.ipv4.conf.all.log_martians=1<br>net.ipv4.conf.all.rp_filter=0<br>net.ipv4.conf.all.secure_redirects=0<br>net.ipv4.conf.all.send_redirects=0<br>net.ipv4.conf.default.accept_redirects=0<br>net.ipv4.conf.default.accept_source_route=0<br>
net.ipv4.conf.default.rp_filter=0<br>net.ipv4.conf.default.secure_redirects=0<br>net.ipv4.conf.default.send_redirects=0<br>net.ipv4.icmp_echo_ignore_broadcasts=1<br>net.ipv4.icmp_ignore_bogus_error_responses=1<br>net.ipv4.ip_forward=0<br>
net.ipv4.tcp_dsack=1<br>net.ipv4.tcp_mem=24576 32768 131072<br>net.ipv4.tcp_rmem=4096 65536 524288<br>net.ipv4.tcp_sack=1<br>net.ipv4.tcp_syncookies=1<br>net.ipv4.tcp_window_scaling=1<br>net.ipv4.tcp_wmem=4096 65536 524288<br>
net.ipv4.udp_mem=8388608 12582912 33554432<br>net.ipv4.udp_rmem_min=16384<br>net.ipv4.udp_wmem_min=16384</font><br><br>проверялось также с:<br><span style="font-family:'courier new',monospace">net.ipv4.tcp_sack=0</span></div>
<div><font face="arial, helvetica, sans-serif">, бОльшими числами в</font><font face="courier new, monospace"> </font><span style="font-family:'courier new',monospace">tcp_mem, </span><span style="font-family:'courier new',monospace">tcp_wmem</span><br>
</div><div>, бОльшим числом worker'ов (до 32)</div><div><br></div><div>результат одинаков.<br></div><div><br></div><div>LA на сервере высокий (в основном, из-за чтения с HDD), на 16 ядрах держится около 16.<br><br>Что я не так готовлю?<br>
<br></div></div>