`
langzhe
  • 浏览: 278552 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ejabberd/tsung 做压力测试万万不可忽视测试工具问题

 
阅读更多

这两天 用tsung测试ejabberd服务器。

2万用户在线,发送online chat message chat/20s。统计结果显示大量用户非常正常close。

还显示出很多error_unkown 错误,次错误出现的数量与非常正常close的基本相等。

很显然此测试结果不准确。反反复复测试 chat数量越多,此问题越严重。

跟踪代码发现get_online 中调用了gen_server:call 默认是5S。我索性直接去掉了,自己生成了的用户在线id.此问题算是解决了,接来要看看get_online里面的算法。

0
1
分享到:
评论
3 楼 langzhe 2015-11-17  
<server host='127.0.0.1' port='5222' type='tcp'/>
我是自己hosts 配置一个车 test.com 之类
dlliwei 写道
jabberd_register.xml 内容如下(我的server client在同一台PC上):
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/local/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" dumptraffic="false" version="1.0">

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

<servers>
   <server host='127.0.0.1' 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="localhost"></option>
------->此处唯一修改点value。 server机器上/etc/hosts内配置了: "127.0.0.1  localhost", 并且ejabberd.yml 中也有“hosts:localhost”
  <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>
2 楼 dlliwei 2015-11-12  
jabberd_register.xml 内容如下(我的server client在同一台PC上):
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/local/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" dumptraffic="false" version="1.0">

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

<servers>
   <server host='127.0.0.1' 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="localhost"></option>
------->此处唯一修改点value。 server机器上/etc/hosts内配置了: "127.0.0.1  localhost", 并且ejabberd.yml 中也有“hosts:localhost”
  <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>
1 楼 dlliwei 2015-11-12  
你好,我安装tsung后执行命令: tsung -f jabberd_register.xml start.
提示错误:
Starting Tsung
Log directory is: /home/liwei/.tsung/log/20151112-1533
[os_mon] memory supervisor port (memsup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed

看log文件,就 tsung_controller@ubuntu.log 有点有用的信息,含有ERROR REPORT的信息如下:

=ERROR REPORT==== 12-Nov-2015::15:33:34 ===
** Generic server ts_config_server terminating
** Last message in was {'$gen_cast',{newbeams,[localhost]}}
** When Server state == {state,
                         {config,undefined,0,5,none,text,undefined,
                          [{client,"localhost",1.0,800,[]}],
                          [{server,"192.168.5.107",5222,ts_tcp,1}],
                          undefined,[],
                          [{arrivalphase,1,900000,undefined,0.4,200000,0,[],
                            1}],
                          undefined,false,[],[],ts_jabber,
                          [{session,1,100,ts_jabber,"jabber-example",true,
                            false,10000,
                            {proto_opts,negociate,"/http-bind/",false,
                             "/chat","binary",10,3,600000,infinity,infinity,
                             32768,32768,undefined,undefined,[],true,true},
                            undefined,3,undefined,undefined,undefined,
                            undefined,undefined}],
                          [],61472,true,undefined,3,3,[],0,10000,
                          {proto_opts,negociate,"/http-bind/",false,"/chat",
                           "binary",10,3,600000,infinity,infinity,32768,32768,
                           undefined,undefined,[],true,true},
                          now,none,200000,[],undefined,"d",false,1,undefined,
                          20,[]},
                         "/home/liwei/.tsung/log/20151112-1533",0,0,[],
                         undefined,1,undefined,ubuntu,0,0,undefined,1.0}
** Reason for termination ==
** {function_clause,
       [{lists,min,[[]],[{file,"lists.erl"},{line,314}]},
        {ts_config_server,handle_cast,2,
            [{file,"src/tsung_controller/ts_config_server.erl"},{line,383}]},
        {gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,615}]},
        {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,681}]},
        {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}

=ERROR REPORT==== 12-Nov-2015::15:33:34 ===
** State machine ts_launcher terminating
** Last event in was {launch,[],"localhost",now}
** When State == wait
**      Data  == {launcher,undefined,[],"ubuntu",undefined,false,0,undefined,
                           undefined,undefined,1,undefined,1,undefined}
** Reason for termination =
** {{function_clause,
        [{lists,min,[[]],[{file,"lists.erl"},{line,314}]},
         {ts_config_server,handle_cast,2,
             [{file,"src/tsung_controller/ts_config_server.erl"},{line,383}]},
         {gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,615}]},
         {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,681}]},
         {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]},
    {gen_server,call,
        [{global,ts_config_server},{get_client_config,"localhost"},60000]}}

=ERROR REPORT==== 12-Nov-2015::15:33:34 ===
** State machine ts_launcher_static terminating
** Last event in was {launch,[],"localhost"}
** When State == wait
**      Data  == {state,"ubuntu",undefined}
** Reason for termination =
** {{function_clause,
        [{lists,min,[[]],[{file,"lists.erl"},{line,314}]},
         {ts_config_server,handle_cast,2,
             [{file,"src/tsung_controller/ts_config_server.erl"},{line,383}]},
         {gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,615}]},
         {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,681}]},
         {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]},
    {gen_server,call,
        [{global,ts_config_server},
         {get_client_config,static,"localhost"},
         60000]}}



请问你直到是什么问题吗??

相关推荐

Global site tag (gtag.js) - Google Analytics