我正在编写一个高吞吐量的多线程 Rust 服务器。服务器一次需要处理大约 10-20k 的连接。
我已经编写了程序并且速度非常快,但是,它最多只允许 1k 连接。 1k 之后,TCPListener
不会返回任何其他内容,直到当前连接被删除。
我在 Rust 内部看不到设置连接限制的任何地方。这是 core::net
的 Rust 限制还是系统限制?
我在 Linux 4.14.15 上运行,开发服务器将在 4.14.xxxx 上。使用rust 1.23.0
最佳答案
我认为这是系统限制。如果您键入 ulimit -n
,您将看到打开的最大文件数,我认为它也适用于套接字。
尝试输入 ulimit -n 10000
然后运行您的应用程序。
关于linux - Rust 1k TCP 连接限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491528/