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