[sisyphus] Re: Как ускорить работу с потоками?

Serge Pavlovsky =?iso-8859-1?q?pal_=CE=C1_interexc=2Ecom?=
Вт Сен 14 04:04:49 MSD 2004


On Втр, 2004-09-14 at 00:02 +0400, Денис Смирнов wrote:
> On Mon, Sep 13, 2004 at 03:19:15AM +0300, Serge Pavlovsky wrote:
> 
>  >> Я не мерял на 100k сокетов. Поделитель тестовым кодом, если вы меряли?
>  SP> я пробовал реальное приложение. при сотнях штук уже кроме селекта ни на
>  SP> что времени не оставалось. и зависимость таки была скорее квадратичная,
>  SP> чем линейная.
> 
> Можно пример тестового кода? Какое количество дескрипторов передавалось
> одному select'у?

пример не дам - там все довольно запутанно и вообще не под линух ;), но
вы можете сделать сами, только кто-то должен еще кормить его пакетами

>  >> И думается мне, что на 100k сокетов будет эффективнее всего работать
>  >> смешаная модель (epoll + нити).
>  SP> спящие нити при правильном ( О(1) ) шедулере никому не мешают. а epoll -
>  SP> мешает
> 
> Хм, именно _e_poll? :-(((

ну, там есть два режима вообще. но тот , что быстрее гораздо неудобнее в
использовании и все равно делает лишнюю работу. да, и с портабилити у
него не очень ;)

> То, что poll/select нельзя передавать много дескрипторов я знаю.
> 
> А O(1) шедулер вроде только с 2.6 в основной ветке, или в 2.4 тоже есть?

может, есть патчи. не интересовался

> >> Ну и на 100k нитей что-то мне не верится что Linux на этом не будет
> >> загибаться.
>  SP> ну, на нашем ядре/libc - будет. но мы ведь дождемся светлого будущего ;)
> 
> В смысле 2.6+NPTL?

угу





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