1

我们在 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 参数

4

2 回答 2

1

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

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

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

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

于 2012-04-06T12:21:35.167 回答
1

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

Openfire 中存在一个已知的内存泄漏,已修复但尚未发布。它与 PEP 有关,如果对您可行,可以将其关闭以规避此问题。

于 2012-04-06T18:30:11.780 回答