我正在编写一个高吞吐量的多线程Rust服务器。服务器需要在10-20k连接附近进行处理。
我已经编写了程序并且速度非常快,但是它只允许最多1k个连接。在1k之后,TCPListener
在删除当前连接之前不会返回任何其他内容。
我没有看到Rust内部的任何地方设置连接限制。这是core::net
的Rust限制还是系统限制?
我在Linux 4.14.15上运行,开发服务器将在4.14.xxxx上运行。 Rust 1.23.0
答案 0 :(得分:9)
我认为这是系统限制。如果您键入ulimit -n
,您将看到打开的最大文件数,我认为它也适用于套接字。
尝试输入ulimit -n 10000
,然后运行您的应用程序。