Why there is no limit to the number of File Descriptor in epoll, but select does have the limit
选择,轮询和epoll可以帮助我们实现高性能服务器。
为什么对poll和epoll中的文件描述符的数量没有限制,但是select有限制吗?
- 你可以说得更详细点吗?您指的是什么限制?您可以链接到指定您要讨论的限制的文档(并从中引用)吗?
Select在库中有一个人为限制的硬编码为FD_SETSIZE,通常为1024。http://www.kegel.com/c10k.html涵盖了c10k问题,并介绍了每种方法(选择,轮询,epoll, iocp等)
- Linux限制了进程可以创建和使用的FD数量。不会影响epoll可以处理的FD数量?
-
哦,会的。但是有一些方法可以增加linux允许的FD数量。 glassonionblog.wordpress.com/2013/01/27/…但是Select始终会将硬编码变量设置为传统上的1024。因此,如果您将限制提高为10,000,Select仍会将您限制为1024。
-
注意:至少可以在Linux中通过更改大小并重新编译内核来提高select的上限。其他* nix可能更难。某些IRC服务器软件上有有关如何重新编译更大数量的Linux以处理更多客户端的说明。