Re: proxy_cache и большой кэш
Igor Sysoev
igor на sysoev.ru
Пн Дек 14 12:30:30 MSK 2009
On Mon, Dec 14, 2009 at 11:58:54AM +0300, Игорь Хомяков wrote:
> Здравствуйте !
>
> === Вводная часть ===
> Есть несколько серверов которые должены работать как кэш для картинок,
> конфиг одинаковый
> FreeBSD 7.2-STABLE amd64
> nginx version: nginx/0.7.64
> Память 6Gb
> Диски 3 x SATA HDD
>
> 3 дисковых кэша + 1 memory disk
>
> на каждый диск создан proxy_cache_path
> proxy_cache_path /disk0/cache levels=1:2 keys_zone=DISK0:64m inactive=3d;
>
> Запросы распределены по дисковым кешам с помощью location-ов более
> менее равномерно.
>
> proxy_cache_valid 200 301 302 304 72h;
>
> proxy_cache_use_stale updating error timeout invalid_header;
> proxy_ignore_client_abort on;
> proxy_cache_min_uses 1;
>
> worker_processes 4;
> worker_connections 8192;
>
> sendfile on;
> tcp_nopush on;
> tcp_nodelay on;
>
> keepalive_timeout 1;
> reset_timedout_connection on;
>
> На кэш сервер прилетает около 700 запросов в сек.
>
> обычный top выглядит так
> load averages: 0.05, 0.08, 0.08
> 33 processes: 1 running, 32 sleeping
> CPU: 1.3% user, 0.0% nice, 2.3% system, 0.4% interrupt, 96.0% idle
> Mem: 172M Active, 69M Inact, 5510M Wired, 174M Cache, 623M Buf, 5992K Free
> Swap: 4096M Total, 52M Used, 4044M Free, 1% Inuse, 48K In
>
> заполняемость кешей в среднем 20Gb для HDD и 2Gb для memory disk
>
> === Проблема ===
>
> 1-2 дня все работает нормально, идет процесс заполнения кешей, затем сервер
> начинает уходить в swap ростет кол-во чтений на дисках (по gstat),
> lsof показывает что
> nginx читает кэш на диске. отдача тормозит сервер выпадает из
> upstream-ов. иногда это заканчивается
> тем что сервер вообще перестает отвечать. через 10-15 минут после
> отключений трафика всё приходит в норму
>
> Есть подозрение что в эти моменты cache manager чистит inactive записи
> и "забивает" дисковый ввод-вывод
Cache manager чистит inactive постоянно.
> Кто нибудь сталкивался с подобными проблемами ? Использовать
> proxy_pass не хочется, т.к там придется в ручную вычищать
> даннные из кешей.
Есть ощущение, что вся память уходит в md (5510M Wired), он похоже,
не меньше 4G. Одного не могу понять, зачем вообще его использовать ?
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru