Re: Почему статические файлы (20Кб) в локальной сети(1Gbit/s) отдаются 1,5 секунды?

Vitaly Ponomarev vp7 на mail.ru
Чт Июл 5 14:56:56 UTC 2018


Добрый день.

> Статика, скажем, размером 20kb отдаётся порядка 1-1.5 секунды.
Самый первый вопрос - определить, кто тупит. 
Либо тупит сервер и тогда вопрос к nginx, либо клиент и тогда вопрос не сюда.

Соберите tcp трейс на стороне сервера и посмотрите сколько времени реально уходит у nginx'а и нет ли tcp retry в сторону клиента.


>Четверг,  5 июля 2018, 17:45 +03:00 от YuriN <nginx-forum на forum.nginx.org>:
>
>Добрый день!
>
>Имеем очень медленную отдачу закэшированной статики. Посоветуйте пожалуйста
>как можно ускорить работу.
>
>Статика, скажем, размером 20kb отдаётся порядка 1-1.5 секунды. При чём TTFB
>относительно быстрый - 200-300 ms, а доставка от nginx до браузера уже 1-1.5
>секунды.  По логам видно, что эта статика берётся из кэша всё-таки
>($upstream_response_time = 0).
>Условия проверки: обращение к титульной странице нашего сайта - это 80
>запросов, 2.7Mb трафика суммарно, по https, http2.
>Конфиг вроде бы стандартный, без особого тюнинга (приложен)
>Если скачивать один только статический файл (1 запрос) - то он скачивается
>без этих задержек - 27 ms. 
>
>Топология:
>nginx-сервер в нашей конфигурации является проскирующим и кэширующим
>сервером:
>кэширует статику с сервера приложений, к-ый расположен в этой же локальной
>сети.
>
>Ошибок на сетевых интерфейсах клиента и сервера нет. Каналы не перегружены.
>(Пропускная способность 1Гбит/с), И в момент обращения к nginx - загрузка
>максимум 5Mbit/s). В лимиты  ЦПУ/память/ дисковый I/O /сеть не упираемся
>судя по vmstat, top, atop, zabbix. Хотя очевидно есть какое-то ограничение,
>про к-ое мне пока неизвестно. 
>8 ядер, 8Gb RAM, Load average 0.00, 0.00, 0.00
>
>В error логах пусто, строки о nginx: [warn] the "ssl" directive is
>deprecated, use the "listen ... ssl" directive instead in /etc/nginx/conf.d/
>не считаю важными.
>
>Также я пробовал размещать proxy_cache_path на tmpfs (в ОЗУ) - не дало
>никакого прироста.
>
>nginx последний stable, из оффициального репозитория nginx.org
>
>Я проверял в разных сетях (с разным коммутационным оборудованием), на разных
>физических серверах, на разных дистрибутивах Linux.
>
>
>_____________________________________________________________
>
>Версии ПО  и конфиги  :
>root на proxy4:~# uname -a
>Linux proxy4 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018
>x86_64 x86_64 x86_64 GNU/Linux
>nginx 1.14.0-0ubuntu1
>дефолтовые  настройки  sysctl
>root на proxy4:~# lsb_release -a
>Description:	Ubuntu 18.04 LTS
>root на proxy4:~# nginx -V
>nginx version: nginx/1.14.0
>built by gcc 7.3.0 (Ubuntu 7.3.0-16ubuntu3)
>built with OpenSSL 1.1.0g  2 Nov 2017
>TLS SNI support enabled
>configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx
>--modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf
>--error-log-path=/var/log/nginx/error.log
>--http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid
>--lock-path=/var/run/nginx.lock
>--http-client-body-temp-path=/var/cache/nginx/client_temp
>--http-proxy-temp-path=/var/cache/nginx/proxy_temp
>--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
>--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
>--http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx
>--with-compat --with-file-aio --with-threads --with-http_addition_module
>--with-http_auth_request_module --with-http_dav_module
>--with-http_flv_module --with-http_gunzip_module
>--with-http_gzip_static_module --with-http_mp4_module
>--with-http_random_index_module --with-http_realip_module
>--with-http_secure_link_module --with-http_slice_module
>--with-http_ssl_module --with-http_stub_status_module --with-http_sub_module
>--with-http_v2_module --with-mail --with-mail_ssl_module --with-stream
>--with-stream_realip_module --with-stream_ssl_module
>--with-stream_ssl_preread_module --with-cc-opt='-g -O2
>-fdebug-prefix-map=/data/builder/debuild/nginx-1.14.0/debian/debuild-base/nginx-1.14.0=.
>-specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong
>-Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC'
>--with-ld-opt='-Wl,-Bsymbolic-functions
>-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now
>-Wl,--as-needed -pie'
>
>
>/etc/nginx/nginx.conf 
>
>user              www-data;
>worker_processes  8;
>error_log  /var/log/nginx/error.log;
>pid        /var/run/nginx.pid;
>events {
>    worker_connections  4000;
>}
>worker_rlimit_nofile 200000;
>http {
>    client_max_body_size 10m;
>    charset utf-8;
>    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=all:512m;
>    include       /etc/nginx/mime.types;
>    default_type  application/octet-stream;
>    log_format  main  '$remote_addr - $remote_user [$time_local] "$request"
>'
>                      '$status $body_bytes_sent "$http_referer" '
>                      '"$http_user_agent" "$http_x_forwarded_for"
>$upstream_response_time';
>    access_log  /var/log/nginx/access.log  main buffer=16k;
>server_tokens off;
>client_body_buffer_size 128k;
>keepalive_requests 1000;
> 	sendfile        on;
>sendfile_max_chunk 512k;
>proxy_buffering on;
>open_file_cache max=200000 inactive=20s;
>open_file_cache_valid 30s;
>open_file_cache_min_uses 2;
>open_file_cache_errors on;
>    keepalive_timeout  65;
>    include /etc/nginx/conf.d/*.conf;
>}
>
>
>/etc/nginx/conf.d/beta.domain.ru.conf
>
>proxy_cache_path /tmp/nginx_CACHE_ZONE keys_zone=CACHE:2048M;
>proxy_temp_path  /tmp/nginx_temp;
>upstream backend {
>server 195.209.xx:80;
>}
>upstream backend_old {
>server 195.209.xx:8098;
>}
>server {
>listen		443 ssl http2;
>server_name	 www.domain.ru;
>access_log	/var/log/nginx/www.domain.ru.access.log  main buffer=16k;
>error_log	/var/log/nginx/www.domain.ru.error.log;
>client_max_body_size	20m;
>keepalive_timeout	60;
>gzip on;
>gzip_proxied any;
>gzip_types *; 
>gzip_vary on; 
>ssl	on;
>ssl_certificate	/etc/dehydrated/certs/domain.ru/fullchain.pem;
>ssl_certificate_key	/etc/dehydrated/certs/domain.ru/privkey.pem;
>ssl_session_timeout	5m;
>ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
>ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
>ssl_prefer_server_ciphers	on;
>ssl_dhparam /etc/nginx/ssl/crt/dhparam.pem;
>        charset utf-8;
>proxy_send_timeout 300;
>proxy_read_timeout 300;
>location = / {
>proxy_cache_valid 200 301 302 304 5m;
>proxy_cache_key
>"$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
>proxy_hide_header "Set-Cookie";
>proxy_ignore_headers "Cache-Control" "Expires";
>proxy_cache_use_stale error timeout invalid_header http_500 http_502
>http_503 http_504;
>proxy_cache	CACHE;
>proxy_redirect off;
>proxy_set_header Host $host;
>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>proxy_pass http://backend;
>}
>        location ~*
>^(/static/|/buildpack/|/assets/|/devadm/|/desktop/|/bitrix/|/jsframework/|/templates/|/upload/|/tmp/).+\.(jpg|jpeg|gif|png|ico|css|css.*|js|js.*|swf|txt|ico|svg|woff2)$
>{
>                expires 1h;
>                add_header Cache-Control public;
>proxy_hide_header "Set-Cookie";
>                proxy_pass http://backend;
>                proxy_cache CACHE;
>                proxy_cache_valid 1h;
>        }
>location / {
>proxy_set_header Accept-Encoding "";
>sub_filter 'http://' 'https://';
>sub_filter_once off;
>
>proxy_redirect off;
>proxy_set_header Host $http_host;
>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>proxy_pass http://backend_old;
>}
>}
>
>root на proxy4:~# vmstat 1
>procs -----------memory---------- ---swap-- -----io---- -system--
>------cpu-----
> r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id
>wa st
> 1  0      0 7716604  25012 264788    0    0     4     2   54   36  0  0 100
> 0  0
> 0  0      0 7716632  25012 264788    0    0     0     0  418  286  0  0 100
> 0  0
> 0  0      0 7716664  25020 264784    0    0     0    28  408  285  0  0 100
> 0  0
> 0  0      0 7716728  25020 264788    0    0     0     0  434  300  0  0 100
> 0  0
> 0  0      0 7716600  25020 264788    0    0     0     0  411  290  0  0 100
> 0  0
> 0  0      0 7716604  25020 264804    0    0     0    28  615  305  1  0 99 
>0  0
> 0  0      0 7716604  25020 264804    0    0     0     0  582  283  0  0 99 
>0  0
> 0  0      0 7716508  25020 264804    0    0     0     0  396  256  0  0 100
> 0  0
>
>Posted at Nginx Forum:  https://forum.nginx.org/read.php?21,280414,280414#msg-280414
>
>_______________________________________________
>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/20180705/26c527e0/attachment-0001.html>


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