Re: Посоветуйте конфиг nginx для отдачи одновременно 10к+ файлов

Maxim Dounin mdounin at mdounin.ru
Thu Mar 7 16:15:06 UTC 2013


Hello!

On Thu, Mar 07, 2013 at 10:53:10AM -0500, arty777 wrote:

> Валентин Бартенев Wrote:
> -------------------------------------------------------
> > On Thursday 07 March 2013 16:37:24 arty777 wrote:
> > > Какие должны быт ьправильные настройки что б работало AIO
> > (асинхронн) ,
> > > привидите пример конфига правильный, для линукс , с файловой
> > системой ext4
> > > 
> > 
> > А вам он действительно нужен?
> > 
> > В исходном сообщение вы пишите: "Необходимо максимально снизить ио на
> > дисковую 
> > стойку ...".
> > 
> > Если исходить из этой задачи, то AIO вам не нужен. Включение directio
> > однозначно 
> > увеличит нагрузку на диск. А AIO на линуксе работает только с ним, и
> > только ещё 
> > более усугубит ситуацию (увеличит нагрузку), увеличив конкуренцию за
> > диск.
> > 
> > >  У меня ранее стояло 512 , сейчас 4К , и ошибок таких как не было
> > так и нет
> > 
> > Что лишний раз подтверждает, что выравнивания 512 вам достаточно.
> 
> 
> Вообще заккоментировал  в конфиге строку #directio_alignment 4K;
> 
>  Еще лучше стало!! Нагрузки диски стали большие выдерживать , супер . 

Закоментировать - это то же самое, что 512.  Соответственно имеем 
бесконечную возможность для улучшения производительности - 
достаточно менять 512 на 4k и обратно, любое действие у вас 
улучшает ситуацию.  :)

> Итого конфиг такой :
> #Вкл aync io
> aio             on;
> directio        512; # включаем O_DIRECT для файлов, размером  512 kбайт или
> больше
> #directio_alignment 4K;
> output_buffers  1 512k;
> 
>   Я всегда думал что AIO улучшает работу , производительность дисковой
> подсистемы . Какой же в нем плюс тогда? 
> С таким вариантом конфига как я показал , aio не работает у меня получается?

AIO - позволяет поднять конкурентность доступа к диску, 
обеспечивая асинхронную работу с ним, что в свою очередь позволяет 
использовать дисковую подсистему более эффективно (что совсем не 
то же самое, что "снизить ио").

При этом на линуксе aio означает необходимость запрета page 
cache'а (== directio), и в зависимости от исходной эффективности 
оного кеша - может улучшить или ухудшить ситуацию в целом.

Идея о том, что "AIO улучшает" - она скорее всего связана с тем, 
что если у людей наблюдаются проблемы с дисковой подсистемой - то 
это обычно означает, что в их случае - эффективность page cache'а 
низкая, и включение aio ситуацию скорее всего улучшит.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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