The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Увеличение скорости отдачи большого количества мелких файлов через nginx (tune speed bandwidth nginx linux sysctl)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: tune, speed, bandwidth, nginx, linux, sysctl,  (найти похожие документы)
From: Arkadiy Kulev Newsgroups: nginx-ru Date: Mon, 26 Jan 2008 18:21:07 +0000 (UTC) Subject: Увеличение скорости отдачи большого количества мелких файлов через nginx Оригинал: http://www.lexa.ru/nginx-ru/msg12003.html > я работаю под линуксом 2.6.20 с 1 гигом оперативки и сервером core2duo > (правда настроенным под 32 бита). > сервер используется для отдачи большого количества мелких изображений, > а также видео flv по 2-3 мегабайта. > в среднем около 50-70 запросов в секунду. > было несколько конфигов, первый с worker_processes=10. > стал замечать, что соединение устанавливается очень долго. > увеличил до 100, соединение происходит мнгновенно, ок. > но в обоих случаях скорость отдачи для flv (да и для картинок тоже) > не превышала 10-20 килобайт в секунду, хотя лимитов никаких не было. > запустил для проверки второй nginx на другом порту и только для себя, > flv качается со скоростью 600 килобайт в сек (отличный результат) - > делаю предположение, что проблема не в дисках (там внешний RAID 5 на > 8 дисков). > так вот проблема - как подобрать или настроить nginx так чтобы и в > первом варианте было также. > текущий рабочий конфиг приведен ниже: worker_processes 100; worker_rlimit_nofile 10240; worker_rlimit_sigpending 32768; error_log /home/nginxstorage.err error; events { worker_connections 1024; use epoll; } http { proxy_buffering off; proxy_temp_path /ram; proxy_buffers 30 8k; proxy_connect_timeout 4; proxy_read_timeout 60; proxy_send_timeout 60; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; client_header_buffer_size 4k; large_client_header_buffers 16 8k; client_max_body_size 220m; output_buffers 32 512k; postpone_output 1460; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 10; lingering_time 30; lingering_timeout 6; reset_timedout_connection on; ... Сам решил свою проблему. установил на listen директиве параметр sndbuf=512k, а в /etc/sysctl.conf прописал # increase TCP max buffer size net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # increase Linux autotuning TCP buffer limits # min, default, and max number of bytes to use net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 и сделал sysctl -p Igor Sysoev: Можно попробовать sendfile_max_chunk 128k;

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру