ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Рекомендации по сниже нию загрузки процессора



> А конфиг?
> Есть ли sendfile?

Я думал напишут общие рекомендации...

sendfile был включен (вот не догодался попробовать выключить, стормозил...)
большое число запросов шло именно на SSL, тоесть остальные сайты или имели
незначительный поток или были отключены. 503 почти небыло, лимит был
поставлен с запасом, но сами строчки проверки были. Общий трафик менялся,
максимум был 60 мбит/с (проксирование порядка 20 мбит/с, остальное
статика). load average взлетал до 20, при этом отдаваемый поток падал.
Найти корреляцию с графиками числа запросов к апачам или количеством
одновременных соединений с апачами не получается.
Через несколько часов я включил почти все сайты, SSL-ные состовляли
значительную часть, но уже не приблиаясь к 100 процентам. nginx выдал 80
мбит с умененным load average.

И вопрос, если я дополнительно стану использовать limit_req это сильно
скажется на загрузке процессора, или лучше при необходимости использовать
фичи в iptables ?
Число воркеров менял, не влияло никак (изначально 20 стояло). зотя
возможно чуть полегче стало с уменьшением их до 8.



user nginx nginx;
worker_processes 8;

error_log /var/log/nginx/error_log info;

worker_rlimit_nofile    8192;

events {
        worker_connections  8192;
        use epoll;
}

http {
        include         /etc/nginx/mime.types;
        default_type    application/octet-stream;

        client_header_timeout   61;
        client_body_timeout     62;
        send_timeout            63;
        client_max_body_size    10m;

        connection_pool_size            256;
        client_header_buffer_size       1k;
        large_client_header_buffers     4 2k;
        request_pool_size               4k;

        gzip on;
        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       75 20;

        ignore_invalid_headers  on;

        index index.html;

        proxy_read_timeout 65;
        proxy_send_timeout 11;
        proxy_connect_timeout 10;
        proxy_next_upstream error;

#       upstream  apache0  {
#           ip_hash;
#           server 172.29.8.4:80 fail_timeout=60s;
#           server 172.29.8.5:80 fail_timeout=60s;
#       }

        log_format  my_log_format  '$msec $request_time '
            '$remote_addr:$remote_port $connection $uid_got $uid_set '
            '$status $request_length $body_bytes_sent '
            '"$request" "$http_referer"';

        log_format  stat_log_format  '$msec $request_time
$remote_addr:$remote_port '
            '$status $uid_got $uid_set $server_name$request_uri $http_referer '
            '$upstream_addr $upstream_response_time $upstream_status
$time_local "$http_user_agent"';
        log_format  static_log_format  '$msec $request_time
$remote_addr:$remote_port '
            '$status $server_name$request_uri';

        limit_zone one $binary_remote_addr 10m;
        limit_conn one 32;
        limit_zone too $server_name 1m;

        userid          on;
        userid_name     stat_uid;
        userid_domain   none;
        userid_path     /;
#       userid_expires  365d;

        include /etc/nginx/include/*;
}

Пример для хоста
server {
    listen              81.176.70.170;
    server_name         cp.4game.ru ;
    proxy_next_upstream error timeout invalid_header http_500 http_503;
    rewrite   ^/(.*)   https://cp.4game.ru/$1 permanent;
}
server {
    listen              81.176.70.170:443 default;
          ssl                   on;
          ssl_certificate       /etc/nginx/ssl/cp.4game.ru.pem;
          ssl_certificate_key   /etc/nginx/ssl/cp.4game.ru.pem;
          ssl_session_timeout   5m;
          ssl_protocols         SSLv2 SSLv3 TLSv1;
          ssl_ciphers           
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
          ssl_prefer_server_ciphers   on;
    server_name         cp.4game.ru ;
    charset             UTF8;
    access_log          /var/log/nginx/cp.4game.ru-access_log combined;
#    error_log          /var/log/nginx/cp.4game.ru-error_log;

    location ~* (^/.htaccess.*|admin\/(admin.php.*)$) { deny all; }
        location ~* ^(.+\.(php|php3|html)|.*/)$ {
        proxy_pass              http://apache0;
        proxy_set_header        Host cp.4game.ru;
        proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header        X-Real-IP  $remote_addr;
        index                   index.php index.html;
        limit_conn              too 120;
        access_log              /var/log/nginx/stat_log stat_log_format;
        error_page      503     /503.html;
    }
    location = /503.html {
        internal;
        root /data/test/htdocs;
        access_log              /var/log/nginx/stat_log stat_log_format;
    }
    location ~ / {
        root   /data/cp.4game.ru/htdocs;
#        access_log             /var/log/nginx/static_log static_log_format;
    }
}

Остальные хосты аналогичные.


> 1 декабря 2008 г. 18:57 пользователь Volkov Oleg
> <volkov@xxxxxxxxxxxxxx>написал:
>
>> В сообщении от Monday 01 December 2008 17:59:49 Anton Yuzhaninov
>> написал(а):
>> > On 01.12.2008 17:19, Volkov Oleg wrote:
>> > > Какие могут быть рекомендации по снижению загрузки процессора от
>> nginx
>> ?
>> > >
>> > > При трафике 60 Mbit/s машине уже плохо.
>> > >
>> > > Использую nginx в качестве фронтенда, проксирование на апачи - 20
>> мбит/с,
>> > > остальное статика с scsi массивов.
>> >
>> > А что top показывает?
>> >
>> > Вполне возможно что процессор грузит ядро.
>> >
>> > Если есть какой либо файрвол, то лучше его отключить.
>> > Для FreeBSD можно увеличить net.inet.tcp.tcbhashsize
>>
>> Система Linux 2.6
>> Load Average был до 20
>> idle был 0
>> system был умеренным, грузило в основном user процессы nginx

---
С уважением,
Волков Олег.
Терабит Телеком.





 




Copyright © Lexa Software, 1996-2009.