Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: fastcgi_cache в nginx
nginx version: nginx/0.7.65
built by gcc 4.2.1 20070719 [FreeBSD]
configure
arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/etc/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid --with-pcre=../pcre-7.0 --with-zlib=../zlib-1.2.3
--with-http_stub_status_module
sendfile on;
tcp_nodelay on;
server_names_hash_max_size 1024;
server_names_hash_bucket_size 512;
client_header_timeout 3m;
client_body_timeout 3m;
client_max_body_size 40m;
send_timeout 3m;
proxy_intercept_errors on;
proxy_next_upstream off;
proxy_read_timeout 4s;
proxy_send_timeout 4s;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
output_buffers 1 32k;
postpone_output 1460;
tcp_nopush on;
send_lowat 12000;
charset windows-1251;
keepalive_timeout 0;
gzip off;
gzip_min_length 1100;
gzip_types text/plain text/html application/x-javascript ;
server
{
listen x.x.x.x:80;
server_name xxxxxxxx ;
ssi on;
error_page 502 503 504 /err504.shtml;
location ~*
\.(swf|zip|rar|arj|gz|cab|exe|dll|ico|jpg|jpeg|gif|bmp|png|mp3|avi|mov|mpg|mpeg|txt|amr|mmf|wml|wbmp|mid|midi|3gp|js|css|htm|html|shtml?)$
{
charset off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
if (!-f $request_filename)
{
break;
proxy_pass http://y.y.y.y:80;
}
root zzzzz;
}
location /
{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass http://y.y.y.y:80;
}
}
----- Original Message -----
From: "Maxim Dounin" <mdounin@xxxxxxxxxx>
To: <nginx-ru@xxxxxxxxx>
Sent: Friday, March 19, 2010 9:51 PM
Subject: Re: fastcgi_cache в nginx
Hello!
On Fri, Mar 19, 2010 at 08:12:33PM +0200, Alex Vasilenko wrote:
Имеется кастомный nginx 0.7.65, fedora 12 и 80гб закэшированных данных, в
среднем 30кб на файлик.
Кастомность заключается в том что sleep для cache loader увеличен с 200мс
до
2сек + добавлены патчи (
http://nginx.org/pipermail/nginx-devel/2010-January/000101.html и
http://nginx.org/pipermail/nginx-devel/2010-January/000102.html)
Конфиг кэширования:
fastcgi_cache_path /backup/nginx-cache/ levels=1:2 keys_zone=one:1024M
inactive=28d max_size=250G;
В среднем 1к файликов на директорию, fs - ext3, noatime, data=ordered.
Отдельный SATA диск под все это безобразие.
Проблемы появляются в 2х случаях:
1. рестарт nginx;
2. увеличение нагрузки.
В 1 случае стартует nginx cache loader, который обходит весь кэш за
сутки.
CPU iowait в это время неприлично скачет. Можно ли безболезненно
отключить
cache loader?
Без loader'а nginx как минимум не сможет следить за размером кеша.
2й случай гораздо интереснее. При постоянном рандомном обращении в 30
запросов в секунду, load avg на сервере с 0.2 увеличивается до 7, само
время
Если мне не изменяет мой cклероз, на линуксе load avg включает
процессы ждущие диска. Вероятнее всего вы просто упёрлись в
диски. Решение - тюнить дисковую подсистему, добавлять дисков, ну
или просто перелезать на SSD.
В случае большого количества worker'ов это также может быть lock
contention (симптом - воркеры жрут 100% CPU, видно в top'е,
наблюдалось если мне не изменяет память на 30 или около того).
Лечить уменьшением количества воркеров до разумного.
ответа скачет до 10сек. Пробовали перевести на SATA RAID 1, load avg стал
прыгать до 35(!).
Не все raid'ы одинаково полезны.
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
__________ хМТНПЛЮЖХЪ НР ESET NOD32 Antivirus, БЕПЯХЪ АЮГШ ДЮММШУ ЯХЦМЮРСП
БХПСЯНБ 4075 (20090514) __________
яННАЫЕМХЕ ОПНБЕПЕМН ОПНЦПЮЛЛНИ ESET NOD32 Antivirus.
http://www.esetnod32.ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|