nginx-1.1.0

Alexander Azarov azarov на aha.ru
Вс Авг 7 08:24:18 UTC 2011


07.08.2011, в 4:41, Maxim Dounin написал(а):

> 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 таки наступили 
> хоть раз - минимальное время сразу можно умножать на два.)
> 
> Расскажи, как загрузится.  Для сравнения ещё интересно было бы 
> знать, сколько этот же самый кеш грузился раньше.

Подтверждаю проблему. У меня кэш небольшой, 24809 файлов, на предыдущих версиях грузился не знаю сколько, но заведомо не часы (оценочно -- менее часа). На nginx 1.1.0 он грузится уже 11 часов.

Лог:

2011/08/07 00:44:29 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_files decreased to 50
2011/08/07 00:44:30 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_files decreased to 25
2011/08/07 00:44:32 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_files decreased to 12
2011/08/07 00:44:41 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_files decreased to 6
2011/08/07 00:44:43 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_files decreased to 3
2011/08/07 00:44:52 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_files decreased to 1
2011/08/07 00:44:54 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 100ms
2011/08/07 00:45:04 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 200ms
2011/08/07 00:45:32 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 400ms
2011/08/07 00:47:59 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 800ms
2011/08/07 00:48:32 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 1600ms
2011/08/07 00:54:23 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 3200ms
2011/08/07 01:00:30 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 6400ms
2011/08/07 01:03:24 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 12800ms
2011/08/07 01:16:26 [notice] 21822#0: cache /var/cache/nginx/cache_longterm loader_sleep increased to 25600ms


>> 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 mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



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