From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 14 Sep 2004 00:02:57 +0400 From: =?koi8-r?B?5MXOydMg883J0s7P1w==?= To: Serge Pavlovsky Message-ID: <20040913200257.GB30107@workstation> Mail-Followup-To: =?koi8-r?B?5MXOydMg883J0s7P1w==?= , Serge Pavlovsky , ALT Linux Sisyphus discussion list References: <413DC4C9.9060406@users.sourceforge.net> <000201c494f0$9e116ae0$4d0010ac@aprcity.com> <20040907173650.GB20569@workstation> <1094710157.2790.10.camel@underdark.interexc.com> <20040909190728.GF8157@workstation> <1094773860.2763.14.camel@underdark.interexc.com> <20040910025455.GF16262@workstation> <1094836894.2790.52.camel@underdark.interexc.com> <20040910213253.GK3462@workstation> <1095034755.2763.69.camel@underdark.interexc.com> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1095034755.2763.69.camel@underdark.interexc.com> Cc: ALT Linux Sisyphus discussion list Subject: [sisyphus] Re: =?koi8-r?b?68HLINXTy8/SydTYINLBws/U1SDTINDP1M/Lwc3JPw==?= X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2004 20:03:45 -0000 Archived-At: List-Archive: 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 тоже есть? >> Причём тут userlevel threads? Видимо вы меня неправильно поняли. Я не >> предлагаю городить диспетчер, который бы распихивал по потокам пришедшие >> события, боже упаси. Я предлагаю гораздо более тупую (т.е. простую) и >> эффектвиную схему: в момент создания соединения сокет привязывается >> статически к одной из нитей, и обрабатывается уже только ей. Нити >> используем для более эффективного использования нескольких процессоров (да >> и одного тоже несколько нитей будут эффективнее использовать) а epoll для >> формирования очереди сообщений на обработку. SP> это вы меня не правильно поняли ;) SP> нету никакой обработки - вся работа с сокетами. прочесть - записать. все SP> время уходит на poll. зачем же еще тратить время на очередь сообщений ? SP> userlevel threads, если от них отрезать переключение контекста, как раз SP> представляют собой генерацию одного большого select на каждый чих вроде SP> read() или write(). и тормозит как раз это, а не переключение контекста. Ясно. >> Ну и на 100k нитей что-то мне не верится что Linux на этом не будет >> загибаться. SP> ну, на нашем ядре/libc - будет. но мы ведь дождемся светлого будущего ;) В смысле 2.6+NPTL? -- С уважением, Денис http://freesource.info