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 的安装路径)

其中配置文件  <client host="localhost" use_controller_vm="true" maxusers="60000">   注意添加 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

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多个用户,于是修改默认打开端口数。 
首先查看端口打开情况:

  1. $ sysctl net.ipv4.ip_local_port_range


执行命令修改该值: 

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

或者

  1. $ 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表现很不错。 
以上测试结果仅限本人测试环境和方式,仅供参考。
 

 

openfire性能调优的更多相关文章

  1. web前端性能调优

    最近2个月一直在做手机端和电视端开发,开发的过程遇到过各种坑.弄到快元旦了,终于把上线了.2个月干下来满满的的辛苦,没有那么忙了自己准备把前端的性能调优总结以下,以方便以后自己再次使用到的时候得于得心 ...

  2. [网站性能2]Asp.net平台下网站性能调优的实战方案

    文章来源:http://www.cnblogs.com/dingjie08/archive/2009/11/10/1599929.html 前言    最近帮朋友运营的平台进行了性能调优,效果还不错, ...

  3. Asp.net平台下网站性能调优的实战方案(转)

    转载地址:http://www.cnblogs.com/chenkai/archive/2009/11/07/1597795.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来 ...

  4. 第0/24周 SQL Server 性能调优培训引言

    大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录. 作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤浅,博而不专,到现在我才发现自己的兴趣所在,于 ...

  5. sqlserver性能调优第一步

    相信不少的朋友,无论是做开发.架构的,还是DBA等,都经常听说“调优”这个词.说起“调优”,可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼,不知道如何入手.当然,也有很多人对此不屑一顾,因 ...

  6. JavaScript:内存泄露、性能调优

    1.在进行JS内存泄露检查之前,先要了解JS的内存管理: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Manageme ...

  7. hadoop 性能调优与运维

    hadoop 性能调优与运维 . 硬件选择 . 操作系统调优与jvm调优 . hadoop运维 硬件选择 1) hadoop运行环境 2)  原则一: 主节点可靠性要好于从节点 原则二:多路多核,高频 ...

  8. JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

    摘要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jstack.jmap.jhat.jstat.hprof等小巧的工具,本博客希望 ...

  9. websphere性能调优之dump命令

    websphere性能调优之dump命令 基于WebSphere 构建的企业应用,时常会出现性能问题,在严重的情况下还会提示出内存溢出,这是一件很让人恼怒的事情.在WebSphere Applicat ...

随机推荐

  1. 【Android实战】Gallary+ImageSwicther图片查看器

    仿照如今各大新闻站点图片新闻的浏览模式,上面展示详细图片(ImageSwitch),以下是能够滑动的小图片(Gallery). 当中须要注意的是ImageSwitch须要定义一个工厂返回的组件,而且能 ...

  2. Android应用开发:网络工具——Volley(一)

    引言 网络一直是我个人的盲点,前一阵子抽空学习了一下Volley网络工具的用法,也透过源代码进行了进一步的学习,有一些心得想分享出来.在Android开发中,成熟的网络工具不少,Android自带了H ...

  3. Chrome自带恐龙小游戏的源码研究(二)

    在上一篇<Chrome自带恐龙小游戏的源码研究(一)>中实现了地面的绘制和运动,这一篇主要研究云朵的绘制. 云朵的绘制通过Cloud构造函数完成.Cloud实现代码如下: Cloud.co ...

  4. 软件工程第3次作业——Visual Studio 2017下针对代码覆盖率的C/C++单元测试

    本项目Github地址(同时包括两个作业项目): Assignment03 -- https://github.com/Oberon-Zheng/SoftwareEngineeringAssignme ...

  5. 《UNIX环境高级编程》读书笔记 —— 文件 I/O

    打开或创建一个文件 #include <fcntl.h> int open(const char *pathname, int oflag, .../*mode_t mode*/);    ...

  6. 【nginx】关于Nginx的一些优化(突破十万并发)

    nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity 00000001 00 ...

  7. Linux 批量替换的一种实现方式

    替换某目录下所有文件中的某个字符: sed -i 's/origin_str/new_str/g' `grep origin_str -rl ./` origin_str:被替换的字符串: new_s ...

  8. 解决:IOS viewDidAppear/viewWillAppear无法被调用

    本文转载至 http://my.oschina.net/lvlove/blog/82264   原因: 苹果的文档是这样描述的: If the view belonging to a view con ...

  9. springcloud微服务实战--笔记

    目前对Springcloud对了解仅限于:“用[注册服务.配置服务]来统一管理其他微服务” 这个水平.有待提高 Springcloud微服务实战这本书是翟永超2017年5月写的,时间已经过去了两年,略 ...

  10. HIbernate 注解 mappedBy 与 inverse

    hibernate中 配置文件中的inverse属性意思就是放弃控制权 ,主导权由对方控制,也就是说 我方进行的删除等操作不会影响到对方 即使设置了cascadeType.ALL 这个解释其实就是hi ...