EC2上Openfire服务器的不可靠行为

时间:2012-04-06 11:04:32

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

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

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

1)Java堆空间异常。

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

3)他们都导致5222端口没有收听,而9090的openfire管理控制台工作正常

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

我想知道,这是否是openfire版本3.7.1或EC2中的错误,在打开端口5222时会遇到一些问题。当1000s用户同时使用它时,我真的很担心Openfire服务器的性能吗?

解决方案:

  1. 禁用PEP。

  2. 增加Openfire JVM参数

2 个答案:

答案 0 :(得分:1)

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

  • 使用Empathy的客户。
  • 一些提供好友列表/白/黑名单等的插件(必须对用户的名单进行处理)。

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

如果您计划拥有数千名用户,我建议您获取静态IP地址(您没有提到您当前的配置)。结帐jabberd - 证明比openfire更可靠。

答案 1 :(得分:1)

1000s of concurrent用户根本不应该成为Openfire的问题。它已经在测试中看到了250K。它总是决定用户在做什么。

Openfire中已知memory leak已修复但尚未发布。它与PEP有关,如果可行的话,PEP可以关闭以解决这个问题。