Francis Cianfrocca
2007-Jun-07 17:52 UTC
[Eventmachine-talk] Epoll implementation ready for you all to try
All, per popular request, there is now an epoll implementation in the EM head revision. It seems to work quite well and hasn''t introduced any instabilities as far as I can tell. It blows through the 1024-descriptor limit with ease, and it seems to be faster than the select-based EM even with smaller descriptor sets. I''ve tested it up to 20,000 sockets, but 50,000 or more should be possible. It exhibits that especially desirable behavior (familiar from all the epoll benchmarks you''ve seen) that it runs at full speed with a few active descriptors and a very large number of quiet ones. Obviously this will only work on Linux 2.6 kernels, and since it''s still a provisional implementation, you have to specifically request it in your program. Eventually I expect it to become the default on platforms that support it. There is also an API that increases the size of the process descriptor table at runtime (Ruby defaults it to 1024). Obviously you need to be root to do that, so there''s also a new API that lets you drop superuser privileges after you set the descriptor-table size. If anyone wants to try it out, let me know and I''ll support you directly. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/eventmachine-talk/attachments/20070607/f7ac552c/attachment.html