Re: fastcgi_cache в nginx

Maxim Dounin mdounin на mdounin.ru
Пт Мар 19 21:51:18 MSK 2010


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