<div dir="auto">Такая же проблема есть, когда диски проседают при наплыве клиентов, nginx начинает жрать до 100% памяти, подтверждаю, раздается статика.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пн, 31 авг. 2020 г., 19:02 Илья Шипицин <<a href="mailto:chipitsine@gmail.com">chipitsine@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пн, 31 авг. 2020 г. в 20:11, Alexey Galygin <<a href="mailto:mif@me.com" target="_blank" rel="noreferrer">mif@me.com</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><div>на тестовом запуске мы словили примерно 200 запросов к статике в секунду в среднем (иногда больше, иногда меньше)<br></div><div>в общем-то это не так уж и много (картинки, стили, документы</div><div><br></div>может быть такое, что если дисковая система стала медленнее (а судя по косвенным замерам, которые я провёл, она медленнее в разы)<div>то прежняя конфигурация nginx просто не успевает раздавать статику?</div><div><br></div><div>скорость сети больше чем скорость дисков</div><div>запросов от клиентов приходит масса</div><div>ком нарастает</div></div></blockquote><div><br></div><div>а отключите буферизацию ?</div><div><br></div><div>proxy_buffering off;</div><div>proxy_request_buffering off;<br></div><div><br></div><div>у вас статика раздается непосредственно с этого сервера или проксируете на другие ? <br></div><div><br></div><div><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><div><br></div><div>процессы висят в статусе “D", медленно считывают и копят это в память</div><div><br></div><div>если отключить sendfile, включить aio, добавить ограничений, это поможет?</div><div><br></div><div>или уменьшить worker_connections 4096?</div><div><br></div><div>или уменьшить open_file_cache?</div><div><br></div><div>или это всё фантазия и медленный диск не мог стать причиной пожирания всей памяти?</div><div><br></div><div><div><br><blockquote type="cite"><div>On 31 Aug 2020, at 14:38, Alexey Galygin <<a href="mailto:mif@me.com" target="_blank" rel="noreferrer">mif@me.com</a>> wrote:</div><br><div><div><div>стандартная сборка из docker hub nginx:1.18.0</div><div><br></div><div><br></div><div><div>worker_processes                auto;</div></div><div><br></div><div><div>events {</div><div>        worker_connections      4096;</div><div>        multi_accept on;</div><div>        use epoll;</div><div>}</div><div>worker_rlimit_nofile    10240;</div></div><div><br></div><div>http {</div><div><div>  client_max_body_size                2000m;</div><div>    sendfile                                    on;</div><div>    tcp_nopush                                  on;</div><div>    tcp_nodelay                                 on;</div><div>    server_tokens                               off;</div><div>    keepalive_timeout                   60;</div><div>        reset_timedout_connection       on;</div><div>        if_modified_since                       before;</div></div><div><br></div><div><div>  proxy_buffer_size                   128k;</div><div>    proxy_buffers                               24 32k;</div><div>    proxy_busy_buffers_size             256k;</div><div>    proxy_temp_file_write_size  4m;</div></div><div><br></div><div><div> client_header_buffer_size   8k;</div><div>    large_client_header_buffers 8 128k;</div><div>        client_body_buffer_size         256K;</div></div><div><br></div><div><div>  server_names_hash_max_size          4096;</div><div>    server_names_hash_bucket_size       128;</div><div>        map_hash_max_size                               8500;</div><div>        proxy_headers_hash_bucket_size  128;</div></div><div><br></div><div><div>   gzip                                on;</div><div>    gzip_types                  text/plain text/css text/xml application/xml application/x-javascript application/javascript application/json application/rss+xml application/rss application/x-rss+xml;</div><div>    gzip_http_version   1.1;</div><div>        gzip_min_length         900;</div><div>    gzip_comp_level             7;</div><div>    gzip_proxied                any;</div><div>    gzip_buffers                32 8k;</div><div>        gzip_disable            msie6;</div></div><div><br></div><div><div>  proxy_cache_path                    /var/lib/nginx/cache  levels=1:2  keys_zone=C1:20m inactive=24h max_size=20000m;</div><div>    proxy_cache_use_stale               updating error timeout invalid_header http_500 http_502 http_503 http_504;</div><div>    proxy_cache_background_update on;</div><div>    proxy_temp_path                             /var/run/nginx/proxy;</div><div>        proxy_cache_lock                        on;</div><div>        proxy_cache_lock_timeout        25s;</div><div>    proxy_cache_methods                 GET HEAD;</div><div>    proxy_cache_valid                   404     1m;</div></div><div><br></div><div><div>  open_file_cache                         max=1024 inactive=30s;</div><div>        open_file_cache_valid           60s;</div><div>        open_file_cache_min_uses        2;</div><div>        open_file_cache_errors          on;</div><div>        open_log_file_cache                     max=100 inactive=30s valid=1m min_uses=2;</div></div><div>}</div><div><br></div><div><br></div><div>к слову, на новом стенде cache выел всего 300 Мб из 10-20 Гб разрешённых (а на рабочем старом стенде вообще пишется в RAM /var/run — и всё там ок)</div><div>нюанс в том, что эта конфигурация отлично работает на старом сервере рядом, где только Ubuntu более старая</div><div><br><blockquote type="cite"><div>On 31 Aug 2020, at 14:19, Илья Шипицин <<a href="mailto:chipitsine@gmail.com" target="_blank" rel="noreferrer">chipitsine@gmail.com</a>> wrote:</div><br><div><div dir="auto">Посмотрите, не увеличивается ли у вас число воркеров.<div dir="auto"><br></div><div dir="auto">Ещё поможет вывод nginx -V</div><div dir="auto"><br></div><div dir="auto">И поможет конфиг</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Aug 31, 2020, 1:51 PM Alexey Galygin <<a href="mailto:mif@me.com" target="_blank" rel="noreferrer">mif@me.com</a>> wrote:<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><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">привет всем</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">случилось странное, переехали на сервера по параметрам в разы большие, чем сейчас (с нескромными 256 Гб </span><span lang="EN-US">RAM</span><span lang="RU">+ 100 Гб </span><span lang="EN-US">swap</span><span lang="RU"> (из всех параметров влияния на штатные параметры </span><span lang="EN-US">sysctl </span><span lang="RU">осталось отключение </span><span lang="EN-US">ipv</span><span lang="RU">6 и </span><span lang="EN-US">swapness</span><span lang="RU"> выставленный в 10%))</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">через 5 минут после старта </span><span lang="EN-US">nginx </span><span lang="RU">ест всю память и весь </span><span lang="EN-US">swap</span><span lang="RU">! (см. <a href="https://prnt.sc/u8nia0" rel="noreferrer noreferrer" target="_blank">https://prnt.sc/u8nia0</a>)</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">в итоге сервер умирает, никогда такого не видели, это же кэширующий прокси, а не БД!…</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"> <u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">пускаем на </span><span lang="EN-US">Ubuntu 20.04 Server LTS (</span>5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux<span lang="EN-US">)</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">нагруженный </span><span lang="EN-US">nginx </span><span lang="RU">1.18 (пробовали из официальных репок ставить на хост nginx/stable 1.18.0-1~focal amd64 и в контейнер из официального докера </span><span lang="EN-US">nginx</span><span lang="RU">:1.18.0)</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">из особенностей используются ngx_http_js_module.so — для исторического </span><span lang="EN-US">escape</span><span lang="RU">/</span><span lang="EN-US">unescape URI </span><span lang="RU">и ngx_http_image_filter_module.so — для подрезки изображений</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="EN-US"> </span><span lang="RU"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">исключили уже всё — и </span><span lang="EN-US">zfs</span><span lang="RU">, который переформатировали в </span><span lang="EN-US">ext</span><span lang="RU">4 с отключенным </span><span lang="EN-US">atime</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">и из </span><span lang="EN-US">docker </span><span lang="RU">вынесли </span><span lang="EN-US">nginx </span><span lang="RU">в хост</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">и внутренние системы исключили</span><span lang="EN-US">…</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="EN-US"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">меняли конфиги, отключали </span><span lang="EN-US">sendfile</span><span lang="RU">, кэши </span><span lang="EN-US">open</span><span lang="RU">-файлов, включали </span><span lang="EN-US">aio</span><span lang="RU">…</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">упорно кончается вся память через 5 минут, все 256 Гб и своп</span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU"> </span><u></u><u></u></div><div style="margin:0cm;font-size:11pt;font-family:Calibri,sans-serif"><span lang="RU">идей практически не осталось, куда можно ещё копать?</span></div></div>_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" rel="noreferrer noreferrer" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer noreferrer noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>
_______________________________________________<br>nginx-ru mailing list<br><a href="mailto:nginx-ru@nginx.org" target="_blank" rel="noreferrer">nginx-ru@nginx.org</a><br><a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank" rel="noreferrer">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div></blockquote></div><br></div></div></blockquote></div><br></div></div>_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank" rel="noreferrer">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div></div>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank" rel="noreferrer">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>