openfire性能调优

APPBET365 ⌛ 2025-08-07 07:11:36 ✍️ admin 👁️ 3767 ❤️ 472
openfire性能调优

1. 参考 http://blog.csdn.net/foxisme2/article/details/7521139

http://blog.csdn.net/foxisme2/article/details/7528148

其中生成测试报告的 命令 由于我本机tsung 的安装路径和上面资料的不同 需要使用

/usr/local/lib/tsung/bin/tsung_stats.pl (使用 whereis tsung 找到tsung 的安装路径)

其中配置文件 注意添加 maxusers 配置 否则注册产生1000个客户端的时候会自动结束

2. 生成的报告没有图片 参照下面的资料 (安装缺少的库)

http://blog.csdn.net/spider_zhcl/article/details/6073920

3. 同时在线的压力测试配置参见

http://blog.csdn.net/simonhe1973/article/details/4456311

4. openfire 的优化参见 (使用了 mongodb 和redis)

http://www.360doc.com/content/12/0601/16/9544_215230754.shtml

5.tsung生成的报告解释

http://linyu19872008.iteye.com/blog/1605707

6. 需要将centos 的打开最大文件数的限制打开, 客户端 和服务端都需要打开,并重启服务

1. 网络层采用异步 io,linux下面用epoll.

java.nio,

JDK 6.0 以及JDK 5.0 update 9 的 nio支持epoll (仅限 Linux 系统),对并发idle connection会有大幅度的性能提升,这就是很多网络服务器应用程序需要的。

启用的方法如下:

-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider

关于 epoll ,可看看这个链接

The C10K problem

http://www.kegel.com/c10k.html

2. 优化字符串解析api,对于高性能服务器,xml数据还是比较消耗带宽和解析成本。

3. 用cache 减少数据库查询,可以在数据库和openfire之间放一个memcached 服务器,据我了解大型web 2.0网站 很多都在用这个东东。

4.开启多个 connection manager.

其他 优化点 : tcp stack tuning,linux kernel tuning,jvm tuning.

参考:

http://www.olat.org/docu/install/EnablingTheInstantMessagingComponent.html#Openfire Performance Tuning (cache)

http://www.igniterealtime.org/about/OpenfireScalability.pdf

Tsung测试openfire碰到的问题总结

博客分类:

Openfire--Tsung

TsungOpenfireLinux

http://www.igniterealtime.org/projects/openfire/ ---下载openfire最新3.8.1 建议Openfire安装在linux中,有朋友测试过openfire安装在windows会出现增加其内存指数到1.5G不能再继续增加的情况,本人没有进行测试。 openfire的安装和使用不是本章节的重点,进入Tsung安装测试。 http://tsung.erlang-projects.org/ ---- Tsung 网站 http://tsung.erlang-projects.org/user_manual.html---Tsung使用手册 安装网上很多文章下载安装Tsung后,需要注意几个地方: 1:ulimit -a 查看openfile,半开文件数。修改ulimit -n 60000,如果需要一直有效,需要修改limits.conf文件。 2:通过测试感觉tsung每次进行压测,没进一个用户需要占用本机一个端口,所以系统默认的端口打开是从32768到65535,所以这里就只能进2W多个用户,于是修改默认打开端口数。 首先查看端口打开情况:

Java代码

$ sysctl net.ipv4.ip_local_port_range

执行命令修改该值:

Java代码

echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range

或者

Java代码

$ sudo sysctl -w net.ipv4.ip_local_port_range="1024 64000"

如果想一直生效,需要修改 /etc/sysctl.conf文件,加入net.ipv4.ip_local_port_range = 1024 65535,修改完成执行sysctl -p。 OK,道路已经扫清,开始你的Tsung压力测试吧。 PS:本人压力测试的结果提供给大家作为参考:4核CPU,7G内存分配给openfire,虚拟机跑openfire(非物理机),10W用户同时在线,每秒进80个用户,运行获取联系人列表,在线聊天,离线聊天,ideal 2小时,离线。服务器表现良好,内存使用较均匀--稍显不足,信息基本没有延迟。Openfire集群情况下,一台6G,一台7G,7G的跑10W用户,每秒进80个,6G的跑5W用户,每秒进50个,集群表现良好,7G的服务器内存吃紧。最终全部完成所有操作,集群消息延迟在50ms左右,openfire表现很不错。 以上测试结果仅限本人测试环境和方式,仅供参考。

相关推荐

新日博365 苹果5s换屏幕多少钱

苹果5s换屏幕多少钱

⌛ 06-30 👁️ 8172
365bet开户网站 多少风前月下,迤逦天涯海角,魂梦亦凄凉。
新日博365 成语【呶呶不休】是什么意思?“呶”不读“nú ”那读什么呢?
365bet开户网站 约基奇缺席世界杯,中国男篮面对减配版塞尔维亚有无胜算?