nginx-1.1.1
Maxim Dounin
mdounin на mdounin.ru
Вт Авг 23 22:11:31 UTC 2011
Hello!
On Wed, Aug 24, 2011 at 01:13:59AM +0400, Igor Sysoev wrote:
> 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).
>
> Спасибо.
> Какой объём кэша ?
> Что значит "выключенным" - больший loader_threshold и нулевой loader_timeout ?
s/loader_timeout/loader_sleep/
(Подозреваю, что так же, как написано тут:
http://mailman.nginx.org/pipermail/nginx-ru/2011-August/042191.html)
> > ИМХО, алгоритм должен адаптироваться к _текущей_ нагрузке на диски, а
> > не требовать от админа выбирать фактически неоптимальные параметры.
>
> Тут не всё однозначно. Например, загрузчик в 1.0.5 на Линуксе/SSD забирал
> себе весь I/O и воркеры долго обслуживали запросы. Не знаю, почему.
Почему забирал весь I/O на SSD как раз понятно: там msleep() делался,
только если загрузка 100 файлов заняла больше 200ms, а это
нереально большое время для SSD.
> Загрузчик 1.1.0 грузил на SSD хорошо, но что происходило на обычных дисках,
> ты видел сам :)
Мне усиленно кажется, что поднять loader_files до скажем 1000 при
текущем алгоритме будет относительно безопасно для всех сценариев
и заметно улучшит время загрузки кеша для случая "нагрузки мало".
Но надо бы потестировать и там, и там, при этом под реальной
нагрузкой и следить за деградацией времени ответа.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru