ПРОЕКТЫ 


  АРХИВ 


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: Рекомендации по снижению загрузки процессора



Сколько ядер в машине? Высокий LA при отсутствии iowait и высокой
нагрузке на процессоры при 20 параллельно мучающих процессор инстансах
нгинкса - это как бы логично. Выставьте кол-во воркеров в значение =
кол-ву ядер.

On Mon, Dec 1, 2008 at 11:53 PM,  <nginx@xxxxxxxxxxxxxx> wrote:
>> А конфиг?
>> Есть ли 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
>
> ---
> С уважением,
> Волков Олег.
> Терабит Телеком.
>
>
>
>



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


 




Copyright © Lexa Software, 1996-2009.