小编Pet*_*ila的帖子

打开 100 万个连接最高可达 469K

我需要配置服务器来处理超过一百万个打开的 websocket 连接(最好是两百万)。

我使用了这篇博文中的配置:

sysctl -w fs.file-max=12000500
sysctl -w fs.nr_open=20000500
ulimit -n 20000500
sysctl -w net.ipv4.tcp_mem='10000000 10000000 10000000'
sysctl -w net.ipv4.tcp_rmem='1024 4096 16384'
sysctl -w net.ipv4.tcp_wmem='1024 4096 16384'
sysctl -w net.core.rmem_max=16384
sysctl -w net.core.wmem_max=16384
Run Code Online (Sandbox Code Playgroud)

但是,我的应用程序在达到 469219 个连接后停止应用新连接。我错过了什么?我真的认为操作系统配置中缺少某些东西。我们的主要应用程序是用 Java 编写的(使用 Tomcat 服务器),但我使用 NodeJS 服务器也得到了非常相似的结果。

我们使用 16GB RAM 的 Ubuntu。

编辑:在高峰期系统使用大约 12Gb 的 14.7Gb。

更新

所以最后我有了 32GB 的工作站。通过增加 RAM 空间解决了问题。目前使用 18GB Java 堆,我能够处理 567K WS 连接。对于更高的数字,我需要更多的客户:-)

linux ubuntu connection linux-networking linux-kernel

0
推荐指数
1
解决办法
1133
查看次数