Re: Периодические подвисания при загрузке статики в nginx

Alexey Kovyrin alexey at kovyrin.net
Tue Feb 17 09:45:18 MSK 2009


iostat -x 10, ждем 10+ секунд, смотрим на последнюю колонку. Это будет
более-менее показательным вариантом для вас. Можно смотреть еще на w/s
и r/s или посмотреть на vmstat, но там надо знать пропускную
способность вашей дисковой системы под вашей конкретной нагрузкой.

2009/2/17 Алексей Загородников <admin at tltorrent.ru>:
> А еще подскажите вашим опытным глазом, на что стоит обратить внимание в
> iostat и что будет являться критерием загруженности дисковой системы.
>
> 17 февраля 2009 г. 10:22 пользователь Алексей Загородников
> <admin at tltorrent.ru> написал:
>>
>> Угумс, с нетерпением жду вечера, буду изучать.
>>
>> 2009/2/17 Alexey Kovyrin <alexey at kovyrin.net>
>>>
>>> а на iostat поглядеть? он вам скажет, справляется ли диск
>>>
>>> 2009/2/17 Алексей Загородников <admin at tltorrent.ru>:
>>> > Нули везде.
>>> > Сегодня попробую вынести mysql в рамдиск, если ситуацию исправит то
>>> > наверное
>>> > диск не справляется и стоит отдельный сервер под БД делать.
>>> >
>>> > 2009/2/17 Alexey Kovyrin <alexey at kovyrin.net>
>>> >>
>>> >> cat /proc/sys/net/ipv4/tcp_tw_recycle
>>> >> cat /proc/sys/net/ipv4/tcp_tw_reuse
>>> >>
>>> >> 2009/2/16 Алексей Загородников <admin at tltorrent.ru>:
>>> >> > Ресурсов харда вроде достаточно, там рейд0+1 собран на 4 дисках.
>>> >> >
>>> >> > Вот интересно былобы чтото найти про настройку Linux, такое ощущение
>>> >> > что
>>> >> > нехватает свободных сокетов ему, много соединений висит в TIME_WAIT.
>>> >> > Никаких файрволов нет, поддержка nf_conntrack вырезана из ядра.
>>> >> >
>>> >> >
>>> >> > 17 февраля 2009 г. 1:17 пользователь Асафов Сергей aka MurZiK
>>> >> > <Asafchik at inbox.ru> написал:
>>> >> >>
>>> >> >> Нагрузка на диски какая?Может в пик нагрузки просто недостаточно
>>> >> >> ресурсов
>>> >> >> жёсткого диска, чтобы считать и отдать файлы?
>>> >> >>
>>> >> >> ----- Original Message -----
>>> >> >> From: Алексей Загородников
>>> >> >> To: nginx-ru at sysoev.ru
>>> >> >> Sent: Monday, February 16, 2009 11:16 PM
>>> >> >> Subject: Периодические подвисания при загрузке статики в nginx
>>> >> >> Приветствую всех, возник следующий вопрос
>>> >> >> В городской сети поднят торрент-трекер, 20000 пользователей,
>>> >> >> примерно
>>> >> >> 5000
>>> >> >> уников в сутки, и 4000 одновременно подключенных торрент клиентов.
>>> >> >> Все это реализовано на nginx + fast-cgi, fcgi и nginx прикручены
>>> >> >> через
>>> >> >> unix socket, движек трекера - torrentpier. Конфигурация железки:
>>> >> >> 2*XeonE5410
>>> >> >> / 8Gb / RAID0+1
>>> >> >> В пик нагрузки начал наблюдать такие проблемы, странички через раз
>>> >> >> то
>>> >> >> открываются с отличной скорость, то зависает на загрузке от 10 до
>>> >> >> 200
>>> >> >> секунд, причем после загрузки показывается что пхп генерится как и
>>> >> >> обычно за
>>> >> >> 0,056сек.
>>> >> >> Попробовал испытать через ab просто статичную картинку, эффект
>>> >> >> тотже,
>>> >> >> просто наглухо виснет тест и все. В это время в нетстате клиента
>>> >> >> видно
>>> >> >> что
>>> >> >> соединения висят в SYN_SENT.
>>> >> >>
>>> >> >> Перепробовал уже большинство возможных вариантов найденных в инете,
>>> >> >> ничего
>>> >> >> не дает улучшения в производительности.
>>> >> >> Может кто сталкивался с подобной проблемой, подскажите решение.
>>> >> >>
>>> >> >> nginx version: nginx/0.7.34
>>> >> >>
>>> >> >> Вот примерный конфиг этого чуда:
>>> >> >> user nginx nginx;
>>> >> >> worker_processes 50;
>>> >> >> worker_rlimit_nofile 20192;
>>> >> >>
>>> >> >> error_log /var/log/nginx/error_log info;
>>> >> >>
>>> >> >> events {
>>> >> >>     worker_connections  50192;
>>> >> >>     use epoll;
>>> >> >> }
>>> >> >>
>>> >> >> http {
>>> >> >>     include        /etc/nginx/mime.types;
>>> >> >>     default_type    application/octet-stream;
>>> >> >>     client_max_body_size 1000m;
>>> >> >>         server_names_hash_bucket_size 64;
>>> >> >>
>>> >> >>     log_format main
>>> >> >>         '$remote_addr - $remote_user [$time_local] '
>>> >> >>             '"$request" $status $bytes_sent '
>>> >> >>         '"$http_referer" "$http_user_agent" '
>>> >> >>         '"$gzip_ratio"';
>>> >> >>
>>> >> >>     client_header_timeout    3m;
>>> >> >>     client_body_timeout    3m;
>>> >> >>     send_timeout        3m;
>>> >> >>
>>> >> >>     connection_pool_size        2024;
>>> >> >>     client_header_buffer_size    1k;
>>> >> >>     large_client_header_buffers    4 2k;
>>> >> >>     request_pool_size        4k;
>>> >> >>
>>> >> >>     gzip off;
>>> >> >> #    gzip_min_length    1100;
>>> >> >> #    gzip_buffers    4 8k;
>>> >> >> #    gzip_types    text/plain;
>>> >> >>
>>> >> >>     output_buffers    1 32k;
>>> >> >>     postpone_output    1460;
>>> >> >>
>>> >> >>     sendfile    on;
>>> >> >>     tcp_nopush    on;
>>> >> >>     tcp_nodelay    on;
>>> >> >>
>>> >> >>     keepalive_timeout    0;
>>> >> >>         lingering_time 30;
>>> >> >>         lingering_timeout 2;
>>> >> >>         reset_timedout_connection on;
>>> >> >>
>>> >> >> #    ignore_invalid_headers    on;
>>> >> >>
>>> >> >>     index index.html;
>>> >> >>
>>> >> >>     server {
>>> >> >>                 listen 80;
>>> >> >>
>>> >> >>                 access_log off;
>>> >> >> #                access_log /var/log/nginx/access_tr.log;
>>> >> >>                 error_log /var/log/nginx/error_tr.log;
>>> >> >>         server_name_in_redirect off;
>>> >> >>                 server_name tltorrent.ru www.tltorrent.ru
>>> >> >> tltorrent.net.ru
>>> >> >> www.tltorrent.net.ru tr.xtlt.ru test.tr;
>>> >> >>
>>> >> >>         error_page  502  /errors/502.html;
>>> >> >>         error_page  403  /errors/403.html;
>>> >> >>
>>> >> >>         location = /nginx_status {
>>> >> >>                     stub_status on;
>>> >> >>                     access_log   off;
>>> >> >>                     allow all;
>>> >> >>             }
>>> >> >>
>>> >> >>             location / {
>>> >> >>                     root   /var/www/tltorrent;
>>> >> >>                     index  index.html index.htm index.php;
>>> >> >>                 }
>>> >> >>
>>> >> >>                 location ~ .php$ {
>>> >> >> #        fastcgi_pass   127.0.0.1:1026;
>>> >> >>                 fastcgi_pass unix:/tmp/fcgi.sock;
>>> >> >>
>>> >> >>                 fastcgi_index  index.php;
>>> >> >>
>>> >> >>         fastcgi_connect_timeout 60;
>>> >> >>             fastcgi_read_timeout 60;
>>> >> >>             fastcgi_send_timeout 60;
>>> >> >>
>>> >> >>                 fastcgi_param  SCRIPT_FILENAME
>>> >> >> /var/www/tltorrent$fastcgi_script_name;
>>> >> >>                 fastcgi_param  QUERY_STRING       $query_string;
>>> >> >>                 fastcgi_param  REQUEST_METHOD     $request_method;
>>> >> >>                 fastcgi_param  CONTENT_TYPE       $content_type;
>>> >> >>                 fastcgi_param  CONTENT_LENGTH     $content_length;
>>> >> >>
>>> >> >>                 fastcgi_param  SCRIPT_NAME
>>> >> >>  $fastcgi_script_name;
>>> >> >>                 fastcgi_param  REQUEST_URI        $request_uri;
>>> >> >>                 fastcgi_param  DOCUMENT_URI       $document_uri;
>>> >> >>                 fastcgi_param  DOCUMENT_ROOT      $document_root;
>>> >> >>                 fastcgi_param  SERVER_PROTOCOL    $server_protocol;
>>> >> >>
>>> >> >>                 fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
>>> >> >>                 fastcgi_param  SERVER_SOFTWARE    nginx;
>>> >> >>
>>> >> >>                 fastcgi_param  REMOTE_ADDR        $remote_addr;
>>> >> >>                 fastcgi_param  REMOTE_PORT        $remote_port;
>>> >> >>                 fastcgi_param  SERVER_ADDR        $server_addr;
>>> >> >>                 fastcgi_param  SERVER_PORT        $server_port;
>>> >> >>                 fastcgi_param  SERVER_NAME        $server_name;
>>> >> >>         #$http_x_forwarded_host;
>>> >> >>                 fastcgi_param  HTTP_HOST        $http_host;
>>> >> >>         #$http_x_forwarded_host;
>>> >> >>
>>> >> >>                 }
>>> >> >>                 location /forum/ub/ {
>>> >> >>                     rewrite ^/forum/ub/(.*).png$
>>> >> >> /forum/ub/ub.php?u=$1;
>>> >> >>                 }
>>> >> >>
>>> >> >>
>>> >> >>         }
>>> >> >>
>>> >> >
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Alexey Kovyrin
>>> >> http://kovyrin.info/
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> Alexey Kovyrin
>>> http://kovyrin.info/
>>
>
>



-- 
Alexey Kovyrin
http://kovyrin.info/


More information about the nginx-ru mailing list