nginx-1.1.0

Maxim Dounin mdounin на mdounin.ru
Вс Авг 7 00:41:31 UTC 2011


Hello!

On Sun, Aug 07, 2011 at 01:27:22AM +0400, Михаил Монашёв wrote:

> Здравствуйте, Igor.
> 
> >> >     *) Добавление: уменьшение времени работы загрузчика кэша.
> >> 
> >> >     *) Добавление: параметры loader_files, loader_sleep и loader_threshold
> >> >        директив proxy/fastcgi/scgi/uwsgi_cache_path.
> >> 
> >> Большое спасибо. А то грузить кэш по 2-ое суток неудобно. За это время
> >> он   сильно  вырастал  и  было  сложно  предсказать  свободное  место,
> >> необходимое для этого роста.
> 
> > Было бы интересно услышать, насколько помогло.
> 
> Теперь процесс, загружающий кэш, перестал грузить диск. Ранее он
> конкурировал за диск с обычными процессами.

Это хорошо.

> Странно,  что  сейчас  уже более часа грузится кэш. Хотя у меня 3 кэша
> структуры  1:2  по ~500 файлов в каждой директории. Т.е. надо прочесть
> всего  3х16х256=12288  директорий  по  ~30кб каждая. Нагрузка на диски
> сейчас  судя по gstat ~30%. Если сейчас читаются только директории, то
> ИМХО,  уже  должно  было  всё  считаться.  Но  процесс,  читающий кэш,
> постоянно в состоянии nanslp находится. loader_files, loader_sleep и
> loader_threshold дефолтные. Диски SAS Hitachi 140 Gb.

Это пока в рамках настроек.  При настройках по умолчанию, если не 
упирается в диск (и threshold не срабатывает), должно занимать 
минимум

    (12288 * 500 / 100) * 50ms = 3072s

Реально - больше, т.к. кроме сна там всё-таки есть и какая-то 
дисковая активность.  (При этом если на threshold таки наступили 
хоть раз - минимальное время сразу можно умножать на два.)

Расскажи, как загрузится.  Для сравнения ещё интересно было бы 
знать, сколько этот же самый кеш грузился раньше.

> P.S.
> loader_files, loader_sleep и loader_threshold хорошо бы в доках
> отразить.

Just in case:
http://mailman.nginx.org/pipermail/nginx/2011-August/028323.html

These paramters are used to control cache loader IO (notably keep
it low enough to allow other work to be done).

loader_files=<number>

    specifies number of files scanned by cache loader per
    iteration

loader_sleep=<time>

    time to sleep after each iteration

loader_threshold=<time>

    if iteration takes more than specified time, number of files
    scanned per iteration is decreased by factor of 2 (once
    number of files reaches 1, sleep time is increased by factor
    of 2)

Default values are:

    loader_files=100
    loader_sleep=50ms
    loader_threshold=200ms

Maxim Dounin



Подробная информация о списке рассылки nginx-ru