【问题标题】:unreliable behaviour of Openfire server at EC2EC2 上 Openfire 服务器的不可靠行为
【发布时间】:2012-04-20 00:27:53
【问题描述】:

我们在 Amazon Ec2 linux 实例上使用 openfire server 3.7.1 作为聊天应用程序。

目前,我们处于初始开发阶段,我们正在使用 4 或 5 个并发用户对其进行测试。 现在,然后我们遇到了 openfire 服务器的问题:

1) Java 堆空间异常。

2) java.net.BindException: 地址已在使用中

3) 它们都导致 5222 端口未侦听,而 9090 的 openfire 管理控制台工作正常

最终,当我停止所有 openfire 进程然后重新启动它时,它又恢复正常了。

我想知道,这是 Openfire 3.7.1 版本的错误,还是 EC2 有一些开放端口 5222 的问题。当 1000 名用户同时使用 Openfire 服务器时,我真的很担心 Openfire 服务器的性能?

解决者:

  1. 禁用 PEP。

  2. 增加 Openfire JVM 参数

【问题讨论】:

    标签: java amazon-ec2 xmpp openfire heap-memory


    【解决方案1】:

    Java堆空间异常对Openfire来说很常见,你可以检查你的JVM参数并增加参数。根据我的经验,有几个案例导致了这些情况:

    • 使用 Empathy 的客户。
    • 一些提供好友名单/白名单/黑名单等的插件(必须对用户的名单做一些事情)。

    您需要确保在 EC2 防火墙设置中打开端口 5222 和 5223(某些客户端可能使用旧的 SSL 端口)。

    如果您计划拥有数千个用户,我建议您获取静态 IP 地址(您不要提及您当前的配置是什么)。还结帐jabberd - 被证明比 openfire 更可靠。

    【讨论】:

    • 感谢您的见解。我没有使用任何插件/同理心。 EC2 已打开端口。此问题通常发生在一天中的特定时间。可能是它积累了所有的java内存,直到那时,java堆发生了。正如有人建议的那样,我最近禁用了 PEP,让我们看看是否有所改善。同时,您能告诉我如何在 openfire 中增加与内存相关的参数吗?
    【解决方案2】:

    1000s of concurrent 用户对 Openfire 来说根本不是问题。它已经在测试中看到了 250K。尽管用户在做什么,但它始终是决定性的。

    Openfire 中有一个已知的memory leak 已修复但尚未发布。它与 PEP 相关,如果可行,可以将其关闭以规避此问题。

    【讨论】:

    • 谢谢,我禁用了 pep。现在,如果这种情况持续存在,我将进行管理。
    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2015-12-18
    • 2016-01-01
    • 1970-01-01
    • 2015-07-12
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多