From: "Денис Смирнов" <mithraen@freesource.info> To: Serge Pavlovsky <pal@interexc.com> Cc: ALT Linux Sisyphus discussion list <sisyphus@altlinux.ru> Subject: [sisyphus] Re: Как ускорить работу с потоками? Date: Sat, 11 Sep 2004 01:32:53 +0400 Message-ID: <20040910213253.GK3462@workstation> (raw) In-Reply-To: <1094836894.2790.52.camel@underdark.interexc.com> On Fri, Sep 10, 2004 at 08:21:34PM +0300, Serge Pavlovsky wrote: >> epoll, например :) >> select/poll на худой конец. SP> когда вы в последний раз измеряли производительность epoll/select/poll SP> на 100к сокетов ? SP> конечно, epoll быстрее, чем select, но недостаточно Я не мерял на 100k сокетов. Поделитель тестовым кодом, если вы меряли? И думается мне, что на 100k сокетов будет эффективнее всего работать смешаная модель (epoll + нити). >> kevent в FreeBSD. >> aio. SP> чтобы почаще threads стартовать, чтоли ? ;) :-)))) >> Самое разумное -- выносить в отдельные нити _обработку_, а как раз ждать и >> данными кидаться в небольшом количестве нитей (в несколько раз больше чем >> количество процессорв, для большей равномерности). SP> многие весьма неглупые на вид люди тоже так наивно полагают. на самом SP> деле это получится один в один доморощенная реализация user-level SP> threads - там тоже один большой select. только вот сложность получается SP> O(n^2) - чем больше потоков, тем чаще им надо читать * на тем больше SP> накладных расходов на каждый select. спрашивается, зачем делать самому SP> userlevel threads и зачем вообще это делать если оно очень быстро SP> начинает дико тормозить ? Причём тут userlevel threads? Видимо вы меня неправильно поняли. Я не предлагаю городить диспетчер, который бы распихивал по потокам пришедшие события, боже упаси. Я предлагаю гораздо более тупую (т.е. простую) и эффектвиную схему: в момент создания соединения сокет привязывается статически к одной из нитей, и обрабатывается уже только ей. Нити используем для более эффективного использования нескольких процессоров (да и одного тоже несколько нитей будут эффективнее использовать) а epoll для формирования очереди сообщений на обработку. Ну и на 100k нитей что-то мне не верится что Linux на этом не будет загибаться. -- С уважением, Денис http://freesource.info
next prev parent reply other threads:[~2004-09-10 21:32 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2004-08-30 11:29 [sisyphus] " Boronin Sergey 2004-08-30 11:36 ` Serge Ryabchun 2004-08-30 17:06 ` Gleb Kulikov 2004-08-31 7:32 ` Boronin Sergey 2004-08-31 7:44 ` Sviataslau Svirydau 2004-08-31 8:51 ` Boronin Sergey 2004-08-31 7:58 ` Boronin Sergey 2004-08-31 9:40 ` Dmitry V. Levin 2004-08-31 10:35 ` Boronin Sergey 2004-09-07 13:43 ` Vadim Gorodisky 2004-09-07 14:02 ` Boronin Sergey 2004-09-07 14:25 ` Ildar Mulyukov 2004-09-07 15:37 ` Boronin Sergey 2004-09-07 17:36 ` Денис Смирнов 2004-09-08 12:20 ` Denis Smirnov 2004-09-09 6:09 ` Serge Pavlovsky 2004-09-09 19:07 ` [sisyphus] " Денис Смирнов 2004-09-09 23:51 ` Serge Pavlovsky 2004-09-10 2:54 ` Денис Смирнов 2004-09-10 12:03 ` [sisyphus] " Boronin Sergey 2004-09-10 14:07 ` Денис Смирнов 2004-09-10 17:21 ` [sisyphus] Re: Как " Serge Pavlovsky 2004-09-10 21:32 ` Денис Смирнов [this message] 2004-09-11 15:20 ` Michael Shigorin 2004-09-12 20:20 ` Денис Смирнов 2004-09-14 18:46 ` Michael Shigorin 2004-09-14 20:12 ` Denis Smirnov 2004-09-13 0:19 ` Serge Pavlovsky 2004-09-13 20:02 ` Денис Смирнов 2004-09-14 0:04 ` Serge Pavlovsky 2004-09-15 21:03 ` Денис Смирнов 2004-09-17 14:20 ` Serge Pavlovsky 2004-09-10 10:50 ` [sisyphus] " Boronin Sergey 2004-09-10 14:01 ` Денис Смирнов
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20040910213253.GK3462@workstation \ --to=mithraen@freesource.info \ --cc=pal@interexc.com \ --cc=sisyphus@altlinux.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git