nginx-1.1.1

Maxim Dounin mdounin на mdounin.ru
Вт Авг 23 21:49:44 UTC 2011


Hello!

On Wed, Aug 24, 2011 at 12:27:37AM +0400, Михаил Монашёв wrote:

> Здравствуйте, Maxim.
> 
> >> Изменения в nginx 1.1.1                                         22.08.2011
> >> 
> >>     *) Изменение: теперь загрузчик кэша за каждую итерацию обрабатывает
> >>        число файлов, указанное в параметре load_files, или же работает не
> >>        больше времени, указанное в параметре loader_threshold.
> 
> > To Миша:
> 
> > Это изменение должно лечить долгую загрузку кеша под нагрузкой.  
> > Потестируй пожалуйста, вылечились ли у тебя проблемы при 
> > настройках по умолчанию.
> 
> Затестил. С выключенным алгоритмом кеш-лоадер работаел 6 минут ( кушал
> 50-60% процессора в top-e). С дефолтным включённым - 65 мин (кушал ~3%
> процессора в top-e).

Количество файлов при этом - примерно такое же, как ты озвучивал 
ранее (3 * 16 * 256 * 500), правильно?

Т.е. фактически расчётное время для полной загрузки с учётом 
loader_files и loader_sleep по умолчанию (100 и 50ms 
соответственно), ok.

(И да, смотреть на процессор - достаточно бессмысленно, надо 
смотреть на загрузку дисков в gstat.)

> ИМХО,  алгоритм должен адаптироваться к _текущей_ нагрузке на диски, а
> не требовать от админа выбирать фактически неоптимальные параметры.

Он и адаптируется.  Если хочешь, чтобы грузилось быстрее - просто 
поставь что-нибудь вроде loader_files=1000, должно загрузиться 
минут за 10 если нагрузки мало.  При этом мешать нормальной работе 
по прежнему не должно: под нагрузкой итерация будет прекращаться 
не после loader_files файлов, а после достижения времени 
loader_threshold (время загрузки кеша при этом, очевидно, 
вырастет).

Значения loader_files/loader_sleep по умолчанию - выбраны 
достаточно консервативно.  Предыдущий алгоритм (всмысле - тот, что 
в 1.0.5 и ранее) вёл себя очень плохо на SSD (читай: просаживал 
диски по самое небалуйся), и возможно мы несколько 
перестраховались, пытаясь снова не наступить на те же грабли.

С другой стороны, даже с такими консервативными значениями - 
сейчас время загрузки кеша в разы меньше, чем в 1.0.*. :)

Maxim Dounin



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