有的时候一台tsung机器压力太小,需要用到多台tsung机器来一起压力测试。这个时候就需要在多台服务器上面安装tsung和启动tsung已经tsung.xml文件。如果机器少还可以,没什么问题。那如
有的时候一台tsung机器压力太小,需要用到多台tsung机器来一起压力测试。这个时候就需要在多台服务器上面安装tsung和启动tsung已经tsung.xml文件。如果机器少还可以,没什么问题。那如果机器过多。可就是个麻烦了。好在tsung给我们提供了集群。可以在一台机器上面管理所有的node节点。tsung.xml配置文件也就只有一个。
下面是集群方式的tsung.xml文件。注意看clients节点的配置。
<?xml version="1.0"?><!DOCTYPE tsung SYSTEM "/opt/lsmp/openfire/tsung/share/tsung/tsung-1.0.dtd"><tsung loglevel="notice" dumptraffic="false" version="1.0"> <clients> <client host="shlab135" use_controller_vm="true" maxusers="100" > <!-- cpu="3":表示启动3个erlang虚拟来压。需要和use_controller_vm='false'或者默认不写 来用--> <ip value="10.1.7.135"></ip> </client> <client host="shlab139" use_controller_vm="true" maxusers="90" > <ip value="10.1.7.139"></ip> </client> </clients> <servers> <server host='10.1.7.139' port='5222' type='tcp' /> </servers> <!-- register 200000 users in less than 15 minutes --> <load> <arrivalphase phase="1" duration="15" unit="minute"> <users maxnumber="190" 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="no_ack"></jabber> </request> <thinktime value="2"></thinktime> <!-- 注册 --> <request> <match do="abort" when="match">error</match> <jabber type="register" ack="local" id="new"></jabber> </request> <!-- 认证 --> <transaction name="authenticate"> <request> <jabber type="auth_get" ack="local"></jabber> </request> <request> <jabber type="auth_set_plain" ack="local"></jabber> </request> </transaction> <!-- 登录后持续300秒 --> <request> <jabber type="presence:initial" ack="no_ack" /> </request> <thinktime value="30000"></thinktime> <!-- 关闭 --> <request> <jabber type="close" ack="no_ack"></jabber> </request> </session> </sessions></tsung>
这里配置了多个client。用这一个配置文件就可以管理所有的node节点。但是这样配置管理的前提是几台机器都必须可以无密码登录。具体的配置请参考我的另一篇文章: http://my.oschina.net/jielucky/blog/167432 。
然后我们再启动tsung,看看是个什么情况,结果报错了。看下图
不能启动远程服务器,原因超时。这是什么原因啊。然后我就查了官方文档。文档上是这么说的。看下图:
它说可以用一个简单的命令来测试下步骤:
- erl -rsh ssh -sname foo -setcookie mycookie
- slave:start(shlab139,bar,"-setcookie mycookie").
这个时候你回车应该看到{ok,bar@shlab139}。
好吧,那我就按照它说的办。结果怎么不对呢?和预想的不一样啊。错误如下:
接着向下看。看文档的第五点。说要关闭防火墙。那我就查看了seliunx。哎呦没关闭啊。好吧那就用root关闭吧。然后再重新测试。好了。和预想的结果一样。然后我们再启动tsung。看日志
终于成功了,不容易啊,这就是我在配置过程中遇到的错误。可能你们在配置的时候会和这个错误不一样。会有其他的问题。别急慢慢来。总会有办法的。可能你出现的问题会在我的另一篇文章中解决。地址
http://my.oschina.net/jielucky/blog/168320
注意:多个node服务器的tsung和erlang版本都要一直。
我的版本是:erlang版本V5.8.5 tsung版本1.4.2