【Tsung压力测试】XMPP/Jabber服务器之注册大量用户

【Tsung压力测试】XMPP/Jabber服务器之注册大量用户

一、安装过程:
1.获取tsung的源码tsung-1.4.2.tar.gz,地址为:http://tsung.erlang-projects.org/dist/
2.安装依赖包
sudo apt-get install erlang erlang-src gnuplot perl libtemplate-perl

注:erlang:从源码编译 erlang 写的程序     perl:report 中的图形

3.编译安装

tar -zxvf tsung-1.4.2.tar.gz

cd tsung-1.4.2/
./configure
make
sudo make install
安装完成之后会自动在系统 path 之中,可以直接输入tsung查看即可,如果出现tsung start/stop/debug/status的信息则安装成功。

二、建立压力测试配置文件

默认的配置文件存在于 ~/.tsung/tsung.xml 中,但我们安装后会发现这个目录和文件并不存在,那就要手动来创建这个目录,操作如下:

mkdir ~/.tsung

cp /usr/share/doc/tsung/examples/jabber_register.xml ~/.tsung/tsung.xml

打开tsung.xml进行修改

vim tsung.xml

对要进行压力测试的openfire服务器信息(IP(域名)和端口)进行修改,如:

<servers>
   <server host='xx.xx.xx.xx' port='5222' type='tcp'/>   //修改成自己的IP地址
</servers>

通过<users maxnumber…>来设置要注册的最大用户数即可

<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" dumptraffic="false" version="1.0">
<servers>
   <server host='xx.xx.xx.xx' port='5222' type='tcp'/>
</servers>

<!-- register 200000 users in less than 15 minutes  -->
<load>
  <arrivalphase phase="1" duration="15" unit="minute">
    <users maxnumber="200000" interarrival="0.0025" unit="second"></users>
  </arrivalphase>
  </load>

<options>
  <option type="ts_jabber" name="global_number" value="5"></option>
  <option type="ts_jabber" name="userid_max" value="200000"></option>
  <option type="ts_jabber" name="domain" value="erlang-projects.org"></option>
  <option type="ts_jabber" name="username" value="tsung"></option>
  <option type="ts_jabber" name="passwd" value="tsung"></option>
</options>

<sessions>
  <session probability="100" name="jabber-example" type="ts_jabber">

    <request>
      <jabber type="connect" ack="local"></jabber>
    </request>

    <request>
      <match do="abort" when="match">error</match>
      <jabber type="register" ack="local" id="new"></jabber>
    </request>

    <request>
      <jabber type="close" ack="local"></jabber>
    </request>

  </session>
</sessions>
</tsung>

 三、启动Tsung

用tsung start运行之后,在openfire的界面上看到正在不断增加用户

 四、生成报表

//进入日志目录
cd ~/.tsung/log/20130502-1608
//运行脚本生成报表文件
/usr/lib/tsung/bin/tsung_stats.pl

五、查看生成的报表

//建立符号链接
cd /var/www
ln -s ~/.tsung/log/ tsungreport

六、测试http://localhost:81/tsungreport/report.html来访问报表

遇到的问题:

在查看openfire页面时发现正在不断的创建用户,但是创建了1000个左右的用户就结束了,但是我的目标是要创建200000个用户,解决方法如下:

(1)先修改系统的最大数限制

在/etc/security/limits.conf 最后增加:

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535

* hard nproc 65535

(2)在配置文件中配置一个重要的参数maxusers

<clients>
    <client host="localhost" use_controller_vm="true" maxusers="60000">
    </client>
</clients>
 

最后的配置文件如下 :

<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" dumptraffic="false" version="1.0">

  <clients>
    <client host="localhost" use_controller_vm="true" maxusers="60000">
    </client>
  </clients>

<servers>
   <server host='xx.xx.xx.xx' port='5222' type='tcp'/>
</servers>

<!-- register 200000 users in less than 15 minutes  -->
<load>
  <arrivalphase phase="1" duration="15" unit="minute">
    <users maxnumber="200000" interarrival="0.0025" unit="second"></users>
  </arrivalphase>
  </load>

<options>
  <option type="ts_jabber" name="global_number" value="5"></option>
  <option type="ts_jabber" name="userid_max" value="200000"></option>
  <option type="ts_jabber" name="domain" value="erlang-projects.org"></option>
  <option type="ts_jabber" name="username" value="tsung"></option>
  <option type="ts_jabber" name="passwd" value="tsung"></option>
</options>

<sessions>
  <session probability="100" name="jabber-example" type="ts_jabber">

    <request>
      <jabber type="connect" ack="local"></jabber>
    </request>

    <request>
      <match do="abort" when="match">error</match>
      <jabber type="register" ack="local" id="new"></jabber>
    </request>

    <request>
      <jabber type="close" ack="local"></jabber>
    </request>

  </session>
</sessions>
</tsung>

相关推荐