`
lydawen
  • 浏览: 469142 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

openfire 3.7 压力测试一(注册)

 
阅读更多

测试环境

服务器

硬件配置:CPU E5620  @ 2.40GHz X2(16核),内存 32G
作系统:CentOS release 5.4(64bit,内核2.6.18
机器上安装有一vm,vm运行openfire数据库,对性能会有一定影响。
openfire 运行参数:openfire -Xms16g -Xmx16g -Xmn8g -XX:MaxPermSize=512m -XX:PermSize=512m

测试机配置
PC机 2.2G双核,1.5G可用内存

测试环境

测试机与服务器间为100M网络,测试机6个线程(受测试机条件影响,但已能较大程度模拟并发)同时不间断共创建60万用户。

测试目的

模拟大并发同时注册为openfire用户,监控服务器瓶颈。

服务器监控

测试开始前,服务器使用IBM基于GPL的unix/linux资源监控软件nmon

[root@testserver128 nmon_data]#nmon -s1 -c600 -f -m /opt/evas/data/nmon_data/

即每秒采集一次硬件资源,共采集600次,即10分钟,日志保存到指定目录。10分钟后(实际用户未创建完成,大概创建50多万,未出现错误),目录下生成带机器名及时间标称的记录文件:

[root@testserver128 nmon_data]# ls
testserver128_110614_1544.nmon  testserver128_110614_1645.nmon

[root@testserver128 nmon_data]# ls
testserver128_110614_1645.nmon

将文件下载到本地windows环境,在接下来的分析过程中将使用到这些原始数据。

数据分析

数据分析依然使用IBM免费的配套分析软件nmon_analyser,说是软件,但它只包含一个excel文档(另含readme),不得不佩服蓝色巨人的强壮,使用几个vb代码在excel中就能完成如此强大的功能。

使用excel打开解压后的nmon analyser v33g.xls,可能需要将excel安全级别降低才能正确运行宏。打开后,点击其中的按钮,选中刚才下载的lstestserver128_110614_1645.nmon,即生成另一xls,接下来便可查看到性能监控结果。

测试数据:10分钟时间完成53万个注册,平均每秒883个成功注册,考虑到单机(PC机)测试,测试机的性能影响到测试结果。

从图示可以看到,整个测试过程,CPU的压力无明显变化,用户注册请求对openfire压力非常小,仅占到1%-2%,最大约6%,但持续时间非常短。 
上图为整个测试过程CPU使用情况,也能很明显看到用户占用较小,有点奇怪压力居然集中在一个核上。 
上图为测试过程磁盘读写IO情况,因为服务器上装有虚拟机以运行数据库,测过过程可能会存在一些影响。整体来看,与平时未进行压力测试波动不大。且测试过程nmon需要写日志,openfire也需要写日志,会影响测试结果。 
磁盘写偶尔有波动,大部分时间是正常波动。 
测试过程内存也无明显波动,主要原因是openfire运行在jvm中,该监控工具无法监控到jvm内存变化情况。

openfire服务器已连续运行6天多,测试后的gc日志:

  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

  0.00  59.39  99.56   8.36   6.38     23   14.514     1    0.768   15.282

运行6天(含测试后)仅发生过23次YOUNG GC,1次FULL GC。但也能看到,YOUNG GC开销的时间较大,这与新生代配置较大有非常大的关系,需要对JVM参数进行优化以压缩GC时间。

JVM永久区内存存在大量浪费,老年代也存在大量浪费。内存多了,用起来也就大手大脚,导致以上小问题。


网络压力也在完全可接受的范围,甚至可以无视。 
整个测试过程,最辛苦的一个cpu(核)的使用情况。

测试过程服务器资源概况: 
比较明显看出CPU比较正常,IO会有些跳跃,但总体也不是瓶颈。通过整个测试过程来看,高并发的用户注册请求对openfire系统压力影响不大。

测试过程出现的问题

1、操作系统最大打开文件数的问题,默认才1024,修改为100000(实际本次测试用不到)

分享到:
评论
9 楼 liyijie123 2017-06-14  
楼主:
       您好!您的资料非常有价值,数据分析阶段的图片不见了,能补上吗?我非常需要看这个资料
8 楼 lydawen 2015-05-29  
a68091555 写道
bluky999 写道
sailer 写道
请问使用nmon命令以后,对openfire系统用什么手段或命令进行压力测试?


试试 tsung


tsung模拟60W用户是怎么模拟的,做了集群吗

必然是集群,忘了是5台还是6台机器模拟,其中一台tsung主控,来协调其它tsung同时压测。
通过配置,还能指定不同机器承担的用户数。
7 楼 a68091555 2015-05-20  
bluky999 写道
sailer 写道
请问使用nmon命令以后,对openfire系统用什么手段或命令进行压力测试?


试试 tsung


tsung模拟60W用户是怎么模拟的,做了集群吗
6 楼 bluky999 2015-01-29  
sailer 写道
请问使用nmon命令以后,对openfire系统用什么手段或命令进行压力测试?


试试 tsung
5 楼 sailer 2015-01-26  
请问使用nmon命令以后,对openfire系统用什么手段或命令进行压力测试?
4 楼 lydawen 2013-10-12  
jieweier733 写道
openfire注册问题不大。主要是在线用户和发送消息这块。加了connection manager 可能会好点。

后续本来还要验证消息路由,消息推送等性能,但中途被调其它项目,所以也就此了结了
3 楼 jieweier733 2013-10-12  
openfire注册问题不大。主要是在线用户和发送消息这块。加了connection manager 可能会好点。
2 楼 lydawen 2012-03-23  
bluky999 写道
LZ要是做个梯度测试,然后给出数据,就更有意义了 

当时主要是为了验证性能,毕业咱也不是专业。做简单的技术验证。
1 楼 bluky999 2012-03-23  
LZ要是做个梯度测试,然后给出数据,就更有意义了 

相关推荐

    openfire3.7_1

     openfire版本为 3.7  关于openfire的配置网上有很多资料,可以找一个配置一下。  这里遇到的问题是,我在配置的时候把端口号从9090,9091改为了19090,19091,导致配置完成的时候无法打开管理控制台,这里需要...

    openfire集群用到的coherence for Openfire 3.7

    openfire集群用到的 Oracle Coherence很难找到 Coherence是Oracle为了建立一种高可靠和高扩展集群计算的一个关键部件,集群指的是多于一个应用服务器参与到运算里。Coherence的主要用途是共享一个应用的对象(主要是...

    openfire 测试

    这个“openfire 测试”可能是指一个针对Openfire服务器的功能测试或者集成测试,旨在确保Openfire服务器能够正确运行并满足特定的需求。 在进行Openfire服务器测试时,你需要了解以下关键知识点: 1. **XMPP协议**...

    Android Openfire 登陆 注册实现代码

    在Android平台上实现Openfire的登录和注册功能,通常涉及到XMPP(Extensible Messaging and Presence Protocol)协议的使用,因为Openfire服务器就是基于XMPP的一种实时通信服务器。XMPP是一种开放的标准,用于即时...

    asmack连接openfire测试

    【asmack连接Openfire测试】是针对XMPP(Extensible Messaging and Presence Protocol)协议实现的一种客户端连接示例,主要用于教初学者如何使用asmack库与Openfire服务器进行交互。Openfire是一款开源、基于XMPP...

    android Openfire的测试客户端程序

    这个“android Openfire的测试客户端程序”就是这样一个示例应用,用于开发者调试和理解Openfire与Android客户端之间的集成。 首先,让我们深入了解一下Openfire。Openfire的核心是基于XMPP(Extensible Messaging ...

    基于openfire 仿QQ

    - 开发过程中,单元测试、集成测试、压力测试都是必不可少的,使用JUnit、Mockito等工具进行测试,确保软件的质量和稳定性。 总的来说,"基于Openfire 仿QQ"项目展示了如何利用开源技术实现一个功能完备的即时通讯...

    openfire测试demo

    Openfire是一款开源、基于Java的即时通讯(IM)服务器,它使用XMPP协议提供实时通讯服务。这个"openfire测试demo"很可能是为了演示如何与Openfire服务器进行交互,包括建立连接、创建用户账户以及发送消息等核心功能...

    openfire 类似QQ客户端 本测试 聊天功能都是ok的

    【标题】"openfire 类似QQ客户端 本测试 聊天功能都是ok的" 指的是一个基于XMPP协议的即时通讯系统Openfire,它被用于创建类似腾讯QQ的聊天应用。Openfire是一个开源、免费的企业级即时通讯服务器,支持多种平台,...

    strophe.js在openfire注册用户插件(带内注册)

    strophe注册插件,xmpp ,openfire服务器,带内注册

    Openfire安装配置手册

    将openfire_src_3_7_0.zip解压缩到Eclipse的workspace,重命名为openfire,创建一个新的Java项目,名称为openfire,然后将openfire源代码导入到Eclipse中。 三、 编译Openfire源代码 使用Ant编译Openfire源代码,...

    openfire测试插件

    一个用于测试的Openfire插件,可以添加自定义功能。 <author>Your Name <version>1.0.0 <class>com.yourcompany.jacktest.JackTestPlugin</class> ``` 其中,`<class>`标签内的类名应与实际的启动类一致。 ...

    第一个openfire插件源码及说明

    Openfire是一款开源的即时通讯(IM)服务器,它基于XMPP协议,允许用户进行实时通信和协作。在Openfire中,插件是扩展其功能的关键方式。本教程将引导初学者了解如何开发第一个Openfire插件,从而深入理解Openfire的...

    openfire的相关资源

    Openfire是一款基于Java的开源即时通讯(IM)服务器,它提供了强大的实时通信功能,支持XMPP协议,可以用于构建企业级的聊天、协作系统。在本文中,我们将深入探讨Openfire的相关资源,包括如何搭建、源码配置、编译...

    openfire环境搭建说明

    ### Openfire环境搭建知识点 #### 一、Openfire简介与工具准备 - **Openfire**:Openfire是一款基于XMPP协议...通过按照这些步骤操作,可以成功地在本地环境中部署Openfire服务器,并为进一步的开发和测试提供基础。

    Jwchat+openfire部署

    在IT领域,部署一个实时通信系统对于许多企业和项目来说至关重要,而Jwchat与Openfire的结合使用就提供了一个高效且可定制化的解决方案。本文将详细介绍Jwchat和Openfire的部署过程及其相关知识点。 首先,Jwchat是...

    openfire聊天服务端源码

    Openfire是一款开源的即时通讯(IM)服务器,它基于XMPP协议,支持多用户聊天、文件传输、音视频通信等功能。这款服务端软件是用Java语言编写的,因此具有跨平台的优势,可以运行在多种操作系统上,如Windows、Linux...

    openfire深入浅出

    OpenFire是一款基于Java开发的XMPP服务器,支持多用户聊天、群聊、文件传输等功能,广泛应用于企业内部沟通、在线客服以及游戏社交等领域。 首先,书中会介绍OpenFire的基本概念和架构。XMPP(Extensible Messaging...

    smack(4.1.6)+openfire(4.0.2)的运用实践的测试用例

    Openfire是基于Java的XMPP服务器,它提供了一个强大的后台平台,用于处理用户注册、连接管理和消息路由。4.0.2版本的Openfire引入了多项新功能和安全更新,比如增强的权限控制、更好的多租户支持以及对TLS/SSL加密的...

Global site tag (gtag.js) - Google Analytics