[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