Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1347477
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: Erlang

2013-03-15 21:36:32

    使用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

        总之,遇到这些问题,通过逐步排查,逐步满足测试环境,并通过错误提示,逐渐找到问题的真正原因,并解决。

 
           
    
阅读(5135) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

zhenghaishu2014-05-13 15:04:45

老师:
sshd默认的已经编译进ssh的PATH是/usr/bin,/bin,/usr/sbin/,/sbin
这个是如何得知的?