jdi*_*jdi 18 operating-system file-descriptor message-queue zeromq websocket
在我尽力研究实现消息队列服务器的最佳方法后,我问了这个问题.为什么操作系统会限制进程和全局系统可以拥有的打开文件描述符的数量?我当前的服务器实现使用zeromq,并为每个连接的websocket客户端打开一个订阅者套接字.显然,单个进程只能将客户端处理到fds的极限.当我研究这个主题时,我发现了很多关于如何将系统限制提高到高达64k fds的信息,但它从未提到它如何影响系统性能以及为什么它开始时为1k或更低?我目前的方法是尝试使用自己的循环中的协程向所有客户端发送消息,以及所有客户端及其订阅通道的映射.但我只是想听听关于文件描述符限制以及它们如何影响试图在每个客户端级别使用持久连接的应用程序的可靠答案?
Bob*_*rbo 13
这可能是因为文件描述符值是文件描述符表的索引.因此,可能的文件描述符的数量将决定表的大小.普通用户不希望他们的一半ram被文件描述符表用尽,该表可以处理他们永远不需要的数百万个文件描述符.