【问题标题】:How to increase Openfire concurrent connection limit?如何增加 Openfire 并发连接限制?
【发布时间】:2015-02-27 09:51:15
【问题描述】:

我正在尝试测试 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 上使用虚拟服务器设置。

场景

我正在测试 Openfire 3.9.3,没有连接管理器,也没有 SSL(目前)。该服务器是 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 配置?

【问题讨论】:

    标签: java xmpp server openfire jabberd2


    【解决方案1】:

    您没有达到 Openfire 规定的限制。类 Unix 系统限制打开文件句柄的最大数量,这包括进程可以拥有的 (TCP) 套接字。您需要设置一个更高的限制(目前似乎设置为 4000 左右)。限制通常使用ulimit 命令修改。

    另见:

    【讨论】:

    • 我也尝试过,但没有帮助。我仍然得到同样的错误。 ulimit 设置为 20000。
    • 你是如何验证 ulimit 设置的?
    • ulimit -Hn & ulimit -Sn
    • 你知道这会报告当前用户的ulimit吗?
    • 是的。我为 root 和 * 设置了相同的值
    【解决方案2】:

    添加到@Flow 的答案...

    如果您尝试从另一台计算机连接,那么您也必须增加该计算机的 ulimit。

    错误

    我提高了打开文件的最大数量限制。 但是,我试图从另一台计算机连接,并且相同的 ulimit 设置为默认值。 因此,在达到 4000 个连接时测试会失败。

    适合我的解决方案

    当我更新运行测试脚本的计算机的 ulimit 时,它运行良好。 我现在可以实现 20000 个并发连接。

    【讨论】:

      猜你喜欢
      • 2020-03-30
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多