Re: nginx подтормаживает.
umask
umask at yandex.ru
Wed Sep 5 18:52:51 MSD 2007
Есть все шансы, что nginx блокируется на чтении файлов. В случае чтения с диска воркер, которые это делает блокируется и клиентов не обслуживает, пока не прочитает файл (это если простыми словами).
А увеличение числа воркеров до 20 или 50 или... даёт какой-то результат?
05.09.07, 18:31, Arkadiy Kulev (eth at ethaniel.com):
> 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;
More information about the nginx-ru
mailing list