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/
|