使用TSung对Jabber服务器openfire进行压力测试

这周准备对openfire3.6.4进行压力测试,从一些资料显示TSung对jabber协议有较好的支持,因此今天下载安装并初步对压力进行测试,主要的步聚如下:

1、从官方网站下载安装包(我的电脑是ubuntu ,所以下载的是Deb包)。 目前官方最新版本为1.3.3, 下载地址为:

     http://tsung.erlang-projects.org/dist/ubuntu/tsung_1.3.3-1_all.deb

     下载后使用 sudo dpkg -i tsung_1.3.3-1_all.deb 进行安装,报错, 找不到依赖包erlang-nox,

     继续使用 :sudo apt-get install erlang-nox

                     sudo apt-get -f install

     安装所有需要依赖的包。

     安装成功后运行 tsung -v 显示版本号:Tsung version 1.3.3  表明安装成功。

2、建立压力测试配置文件对服务器进行配置。

     默认的配置文件存在于 ~/.tsung/tsung.xml 中。

     从示例配置中复制需要进行测试的配置 /usr/share/doc/tsung/examples/jabber_register.xml

      示例配置代码如下:

error  

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

由于第一次配置有问题就运行了 tsung start  &, 接下来运行就一直报错:

tsung start & [2] 18021 web@spider:~/.tsung$ Starting Tsung {error_logger,{{2010,12,13},{14,56,52}},"Protocol: ~p: register error: ~p~n",["inet_tcp",{{badmatch,{error,duplicate_name}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]} {error_logger,{{2010,12,13},{14,56,52}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.22.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.10.0>]},{messages,[]},{links,[#Port<0.162>,<0.19.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,24},{reductions,498}],[]]} {error_logger,{{2010,12,13},{14,56,52}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[tsung_controller,shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]} {error_logger,{{2010,12,13},{14,56,52}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]} {error_logger,{{2010,12,13},{14,56,52}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]} {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"} Crash dump was written to: erl_crash.dump Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}) [2]- Exit 1 tsung start

刚开始以为是注册用户时有重名的用户所至,但检查服务器上一个用户也没有创建成功,因此排除,经过一段时间的排错,发现是因为前一个进程没有关闭所致,因此杀掉原来的进程:

$ ps aux | grep erlang web 16281 0.0 0.0 1956 524 ? S 11:53 0:00 /usr/lib/erlang/erts-5.7.4/bin/epmd -daemon web 17822 0.0 0.4 49336 9380 pts/2 Tl 14:36 0:00 /usr/lib/erlang/erts-5.7.4/bin/beam.smp -P 250000 -A 16 -K true -- -root /usr/lib/erlang -progname erl -- -home /home/web -- -smp auto -rsh ssh -noshell -sname tsung_controller -setcookie tsung -boot /usr/lib/erlang//lib/tsung_controller-1.3.3/priv/tsung_controller -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.3.3/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.3.3/ebin -tsung_controller smp_disable true -tsung_controller debug_level 5 -tsung_controller config_file "/home/web/.tsung/tsung.xml" -tsung_controller log_file "/home/web/.tsung/log/tsung.log" web 18978 0.0 0.0 3548 816 pts/2 R+ 15:53 0:00 grep erlang web@local:~/.tsung$ kill -9 17822

 

再运行 tsung start , 终于看到输出到日志文件了!

检查服务器用户,正在不断的创建用户。嗯?怎么创建了1000个左右的用户就结束了呢?我的目标是要创建200000个用户呀,查看日志是因为用户open file 最大数限制, 修改系统最大连从接从1024到65535 ,无效!

后来才发现配置文件中还有一个重要的参数:maxusers, 于是增加到配置文件中:

 

这次终于大功告成。 用户源源不断地创建到了openfire 中。

 

 

3、压力测试完成后, 需要出统计报表进行报告:

进入日志的目录:cd ~/.tsung/log/20101213-09:32

运行脚本文件: /usr/lib/tsung/bin/tsung_stats.pl

 

报错,不能生成图片(曲线图):

$ /usr/lib/tsung/bin/tsung_stats.pl creating subdirectory data creating subdirectory images creating subdirectory gnuplot_scripts Error while running gnuplot: 对设备不适当的 ioctl 操作 at /usr/lib/tsung/bin/tsung_stats.pl line 167. Error while running gnuplot: 对设备不适当的 ioctl 操作 at /usr/lib/tsung/bin/tsung_stats.pl line 167. Error while running gnuplot: 对设备不适当的 ioctl 操作 at /usr/lib/tsung/bin/tsung_stats.pl line 167. Error while running gnuplot: 对设备不适当的 ioctl 操作 at /usr/lib/tsung/bin/tsung_stats.pl line 167. No data for Event No data for Async No data for Errors Error while running gnuplot: 对设备不适当的 ioctl 操作 at /usr/lib/tsung/bin/tsung_stats.pl line 167. Error while running gnuplot: 对设备不适当的 ioctl 操作 at /usr/lib/tsung/bin/tsung_stats.pl line 167. Error while running gnuplot: 对设备不适当的 ioctl 操作 at /usr/lib/tsung/bin/tsung_stats.pl line 167. Can't locate Template.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/lib/tsung/bin/tsung_stats.pl line 367. web@spider:~/.tsung/log/20101213-08:12$

于是安装生成图片的依赖包: 

sudo apt-get install gnuplot

图片生成了, 但还是报模板找不到:

$ /usr/lib/tsung/bin/tsung_stats.pl No data for Event No data for Async No data for Errors Can't locate Template.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/lib/tsung/bin/tsung_stats.pl line 367.

 

 继续安装缺少的模板依赖:

sudo apt-get install perl5
sudo apt-get install libtemplate-perl

 

安装成功,html的报表也出来了, 到此为止。

 

4、接下来进行了40W用户的注册测试,以及在线用户测试。压力是出来了, 接下来的问题是openfire服务器上文件打开数限制导致的错误了,继续进行。。。。

 

 

 

 

你可能感兴趣的:(测试相关,服务器,application,测试,report,server,perl)