From: George S. <ge...@om...> - 2004-03-29 01:27:47
|
On Mar 28, 2004, at 7:15 PM, Alex Russell wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On Friday 26 March 2004 6:02 pm, George Schlossnagle wrote: >> On Mar 26, 2004, at 7:06 PM, BC Sittler wrote: >>> Just to be sure I understand... there is a kqueue [*bsd] reactor >>> already in twisted, but not one for epoll [linux], right? And >>> Joyce needs one for Linux? >> >> Just fyi, the epoll backport to 2.4 is slightly flaky (will build >> products that exploit that target that patch). Even without epoll, >> the poll reactor will give you the scalability you need. > > I have no doubt that poll() will do the job, but as to whether or not > poll() will induce high latency with a huge number of long-lived > clients, I'm not sure: > > http://lse.sf.net/epoll/index.html#compare As a bit of an aside (since everything you've said is completely true), while epoll(), /dev/poll and kqueue() are much more scalable than poll, you can still get pretty decent performance out of stock poll(). For instance, our MTA (ecelerity) can support 100,000 inbound connections at 450 messages per second, which is pretty darn fast (200-300 Mb/s). You get better performance out of the platform-specific event systems (and we support those on systems that support them), but the poll() performance is not shabby. At any rate, even without it's implementation in twisted, porting to twisted seems to be the fastest way to get epoll() support, as it is likely to show up there soon and be well supported. // George Schlossnagle // Postal Engine -- http://www.postalengine.com/ // Ecelerity: fastest MTA on earth |