我正在尝试测试Openfire可以处理多少并发用户连接。我注意到4000 个用户的限制。如何在 Openfire 上处理50000个或更多并发连接?应该做什么样的配置来处理大量的连接。
我的服务器配置
OS - Ubuntu Server 14.04.1 64 bit
Processor - 3.00 GHz
RAM - 512 MB
Openfire Version - 3.9.3
出于测试目的,我在 virtualbox 上使用虚拟服务器设置。
设想
我正在测试没有连接管理器且没有 SSL 的 Openfire 3.9.3(还)。该服务器是 Virtualbox 上的虚拟机设置,具有 3.00GHz 处理器和 512MB RAM。这是一个标准的 Openfire 安装,带有 MySQL 数据库连接,最大连接数为 100。
当使用来自https://community.igniterealtime.org/docs/DOC-1232 [请注意我没有设置集群] 的负载测试脚本进行测试时,用户连接数稳步增加,直到 4000 个并发用户连接。一旦连接了 4000 个用户,所有连接都开始下降,直到所有连接都丢失,我收到如下错误:
java.net.SocketException: Too many open files
at java.net.Socket.createImpl(Socket.java:460)
at java.net.Socket.<init>(Socket.java:431)
at java.net.Socket.<init>(Socket.java:211)
at OpenfireClusterStressTest.testMultipleLogin(OpenfireClusterStressTest.java:111)
at OpenfireClusterStressTest.main(OpenfireClusterStressTest.java:46)
问题
无法处理超过 4000 个并发用户连接。如何提高这个限制?实现相同需要什么 openfire 配置?