ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Проблема при >1500 одновременных коннектов.



On Tue, Feb 10, 2009 at 09:25:59PM +0100, Valery Kholodkov wrote:

> Михаил Монашёв wrote:
> >Здравствуйте, Валерий.
> >
> >>>В> X-воркеров  на  N-дисков  + хитрый балансировщик, который знает где
> >>>В> какие файлы лежат - сложно все это. Самое лучшее, конечно, это если
> >>>В> бы в nginx появился полноценный aio.
> >>>
> >>>Это тоже не панацея. Ибо там тоже есть свои ограничения и aio - борьба
> >>>с симптомами, а не с болезнью. Единственное чем оно полезно - не нужно
> >>>иметь 1000 воркеров, что немного экономит память.
> >
> >VK> Можно подробней про ограничения aio?
> >
> >Лучше у Игоря спросить, а то я боюсь стать испорченным телефоном.
> 
> Игорь?

Я могу сказать про FreeBSD. Для aio обычных файлов там используются
вспомогательные ядерные процессы/трэды aiod.

В 6ке:

  819  ??  DLs    0:00.79 [aiod0]
  820  ??  DLs    0:00.79 [aiod1]
  821  ??  DLs    0:00.79 [aiod2]
  822  ??  DLs    0:00.81 [aiod3]

В 7ке:

    8  ??  DL     0:00.00 [aiod_bio taskq]

Настраивается всё дело с помощью:

vfs.aio.max_aio_queue: 1024
vfs.aio.max_aio_queue_per_proc: 256
vfs.aio.max_aio_procs: 32
vfs.aio.max_aio_per_proc: 32

Когда очередь кончается, возвращается EAGAIN и придётся работать, как
обычно (ну или выдавать 503). То есть, по сути всё ожидание переносится
в ядерные процессы и не факт, что оно будет существенно лучше. Но сами
воркеры будут блокироваться меньше и данные, доступные в памяти будут
уходит быстро. Нужно, конечно, пробовать.


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.