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