使用tsung作为压力测试工具时,配置时出现无法连上远端的测试机协同压力测试服务器。
通过查看tsung的manual找到了一些线索。
tsung要连接上远端的机器协同来参与测试,要具备以下几个条件
(1)ssh能不用密码登陆参与协同测试的其他机器
主要是参与测试的机器中有一个是tsung_controller,其他都是tsung*(tsung1,tsung2),属于集中控制的方式。
(2)参与协同测试的机器都安装了erlang,tsung,最好版本相同。
erlang不同版本之间的差异比较大。
(3)关闭协同测试的机器的防火墙
centos下可以通过service iptables stop关闭防火墙
(4)关闭selinux
centos下可以通过getenforce和setenforce来关闭selinux
(5)参与协同测试的机器的主机名不应该引用localhost或loopback
127.0.0.1 localhost
192.168.1.94 test1(本地主机名)
192.168.1.90 test2(协同测试机器主机名)
除此之外,在启动tsung.sh start之后,会发现在slave:start的过程中,出现error timeout 或erl command not found等提示
这个问题可以逐步来分析
1、首先尝试在当前作为tsung_controller的机器上slave启动tsung
erl -rsh ssh -sname tsung_controller -setcookie tsung
在erl shell上运行
slave:start(test1,tsung,"-setcookie tsung")
如果成功,说明erlang与tsung没有问题。
2、尝试改成远端协同机器的主机名
slave:start(test2,tsung,"-setcookie tsung")
如果失败,仍然看到error,timetout提示,超时有很多原因
3、尝试ssh执行远端的erl命令
ssh test2 erl
如果提示erl command not found,就是ssh的问题了。
尝试执行其他的命令
ssh test2 ls 或pwd
一般都没有问题,可见就是ssh连接上后的PATH没有包含erlang的路径
4、尝试在sshd已编译的PATH下建立erl相关命令的软连接即可
例如:
ln -s /usr/local/erlang/bin/erl /usr/bin/erl
sshd默认的已经编译进ssh的PATH是/usr/bin,/bin,/usr/sbin/,/sbin
总之,遇到这些问题,通过逐步排查,逐步满足测试环境,并通过错误提示,逐渐找到问题的真正原因,并解决。
阅读(5202) | 评论(1) | 转发(0) |