Re[2]: nginx подтормаживает.
Arkadiy Kulev
eth at ethaniel.com
Wed Sep 5 18:31:35 MSD 2007
Hello umask,
все файлы берутся с одного подключенного внешнего хранилища.
причем если запустить еще один nginx - доступ к файлам будет
мгновенный, без задержек.
проблема в самом nginx - как он обрабатывает запросы.
такое предположение, честно я не спец, что он "подвисает" на одних
запросах и поэтому временно притормаживает другие.
то есть скорость не всегда падает в ноль, бывает что она просто
понижается до 60к к примеру.
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 9 10084 9744 6264 808616 22 13 2087 920 11 8 17 6 34 43 0
0 13 10084 9904 6272 807308 0 0 6144 314 9192 1028 7 6 11 76 0
0 3 10084 9416 6272 804308 0 0 2856 1883 7631 981 12 5 16 66 0
0 9 10084 9108 6268 796148 0 0 2944 122 11807 1190 13 9 19 60 0
0 11 10084 12312 6272 795780 0 0 6868 206 9609 821 6 6 7 81 0
0 8 10084 9412 6272 798724 0 0 4744 1184 6327 917 3 3 8 86 0
с памятью проблем нет, там стоит 1 гигабайт, который не свопится (10
мегабайт принципиальным свопом не считаю).
Wednesday, September 5, 2007, 4:48:33 PM, you wrote:
> Добрый день,
> а откуда у вас беруться эти самые изображения и тот 4-х мегабайтный файл? С диска, из
> ram-диска?
> Что показывает `vmstat 1' в течение эксперимента +\- пол минуты?
> Во время эксперимента есть какие-то сообщение в access и error логах?
> 05.09.07, 16:35, Arkadiy Kulev (eth at ethaniel.com):
>> День добрый,
>> уже писал раньше, думал решил проблему, а оказывается нет.
>> у меня nginx отдает 80-100 изображений в секунду на 10 worker-ах.
>> стоит limit_rate 100k.
>> начинаю с этого сервера скачивать большой файл на 4 мегабайта.
>> первые несколько секунд нормально по 100к в секунду.
>> потом вдруг замирает на пару секунд и сразу отдает к примеру 400к,
>> дальше по 100к опять нормально.
>> иногда эти замирания с падением скорости происходят секунд 5.
>> сетка одна, на нее валить.
>> sendfile_max_chunk и sndbuf не помогают вообще.
>> очень обидно, что все эти параметры тюнинга настроек очень сухо или
>> вообще не описаны в документации.
>> конфига:
>> user web web;
>> timer_resolution 1000ms;
>> #worker_priority 5;
>> worker_processes 10;
>> #worker_rlimit_nofile 60000;
>> worker_rlimit_nofile 10240;
>> worker_rlimit_sigpending 32768;
>> pid /var/run/nginxstorage.pid;
>> error_log /home/nginxstorage.err;
>> events {
>> worker_connections 1024;
>> use epoll;
>> }
>> proxy_buffering on;
>> proxy_temp_path /ram;
>> proxy_buffers 30 8k;
>> proxy_connect_timeout 10;
>> proxy_read_timeout 60;
>> proxy_send_timeout 60;
>> #sendfile_max_chunk 128k;
>> limit_rate 100k;
>> access_log off;
>> include mime.types;
>> default_type application/octet-stream;
>> log_format main '$remote_addr - $remote_user [$time_local] '
>> '"$request" $status $bytes_sent '
>> '"$http_referer" "$http_user_agent" '
>> '"$gzip_ratio"';
>> log_format download '$remote_addr - $remote_user [$time_local] '
>> '"$request" $status $bytes_sent '
>> '"$http_referer" "$http_user_agent" '
>> '"$http_range" "$sent_http_content_range"';
>> 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 10k;
>> postpone_output 1460;
>> sendfile on;
>> tcp_nopush on;
>> tcp_nodelay on;
>> keepalive_timeout 10;
>> server {
>> listen 89.188.102.68:80 default sndbuf=512k backlog=3000;
--
Best regards,
Arkadiy mailto:eth at ethaniel.com
More information about the nginx-ru
mailing list