tsung ts_config_server无法在主机上启动newbeam(原因:超时)正在中止

时间:2012-07-20 13:01:00

标签: erlang timeout load-testing tsung beam

我目前正在亚马逊的EC2服务上进行分布式负载测试,并且非常关注如何让事情发挥作用的所有文档/论坛/支持,但不幸的是发现自己陷入了困境。任何相关的IRC中都没有人能够回答这个......

以下是我所看到的:

如果我只是在控制器上运行它,我可以让Tsung完美地工作,但有选择:

FROM tsung.xml
 <client host="tester0" weight="8" maxusers="10000" cpu="4"/>

此外 - 它适用于更高/更低的CPU值。

我也很容易使用以下方式让它在本地工作:

use_controller_vm="true"

但这对我来说没用,因为我无法获得我想要的吞吐量。

为了让工作正常,我安装了ssh密钥。我打开了这些服务器上的所有端口[0 - 65535]并拥有完全相同的Tsung,Erlang版本,而且,服务器上的所有内容实际上都是相同的(它们是彼此的图像)。

Tsung 1.4.2版 二郎R15B01 Ubuntu 12.04LTS 相同的EC2安全组(所有端口都打开 - 包括TCP&amp; UPD和NO iptables或SELinux) 相同的EC2可用区

当我启动tsung时,只有按照上面的信息发送到tester0并且ts_config_server启动newbeam时才能使用它:

ts_config_server:(6:<0.84.0>) starting newbeam on host tester0 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751"

但是,每当我尝试使用任何远程服务器运行此操作时,整个测试都会失败并且我将获得零用户:

<client host="tester1" weight="8" maxusers="10000" cpu="1"/>

ts_config_server:(6:<0.84.0>) starting newbeam on host tester1 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451924"

但是,当我尝试使用两个客户端运行它时(例如,如下所示):

<client host="tester0" weight="8" maxusers="10000" cpu="1"/>
<client host="tester1" weight="8" maxusers="10000" cpu="1"/>

我再一次让零用户开始点击我的网络服务器。我不确定为什么,这对我来说根本就不直观。

ts_config_server:(6:<0.84.0>) starting newbeam on host tester1 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751"
ts_config_server:(6:<0.85.0>) starting newbeam on host tester0 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751"

我注意到的一件事是,在传递给slave的所有args中:start,只有ONE不存在,那是跟在-boot指令之后的那个:

/usr/lib/erlang//lib/tsung-1.4.2/priv/tsung

相反,在该目录中,我只有以下文件:

:~$ ls /usr/lib/erlang//lib/tsung-1.4.2/priv
tsung.boot                    tsung_controller.rel     tsung_recorder.boot         tsung_recorder.script
tsung_controller.boot         tsung_controller.script  tsung_recorder_load.boot    tsung.rel
tsung_controller_load.boot    tsung_load.boot          tsung_recorder_load.script  tsung.script
tsung_controller_load.script  tsung_load.script        tsung_recorder.rel    

我实际尝试的最后一件事是在我尝试奴隶时记录我的ssh会话正在发生的事情:开始,但我没有得到任何结果。我这样做是通过运行:

erl -rsh ssh -sname tsung -r ssh_log_me 

ssh_log_me是:

#!/bin/sh

echo "$0" "$@" > /tmp/my-ssh.log
ssh -v "$@"  2>&1 | tee -a /tmp/my-ssh.log

但是我跑的时候没有输出:

(tsung@tester0)1> slave:start_link(tester1, tsung, " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751").
{error,timeout}

我查看了erlang的-boot指令和实际的erlang代码(对于ts_config_server),但我现在有点迷失,可能只是遗漏了最后一条信息。

我请你在这里查看我的xml文件:http://pastebin.com/2MEbL6gd

2 个答案:

答案 0 :(得分:0)

我使用git的最新版本进行了重新编译,但是它很有用 - 奇怪的是它与我安装的deb软件包没有用...

去告诉你 - 不确定时从源代码编译!

答案 1 :(得分:0)

确保已禁用ssh密钥验证 〜/ .ssh / config Host * StrictHostKeyChecking no UserKnownHostsFile = / dev / null

确保可以跨控制器和工作节点访问所有端口。如果它在云中,请确保防火墙或安全组允许所有端口。 3.Erlang,Tsung必须有相同的版本。

4.确保所有机器都可以相互通达

5.Run erlang测试

erl -rsh ssh -name subbu -setcookie tsung Erlang R16B03-1(erts-5.10.4)[source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [内核轮询:假]

Eshell V5.10.4(用^ G中止)(daya@ip-10-0-100-224.ec2.internal)1&gt;奴隶:开始(&#34; worker1.com&#34;,bar,&#34; -setcookie tsung&#34;)。

警告:永久添加&#39; worker1,10.0.100.225&#39; (ECDSA)到已知主机列表。 【OK,酒吧@ worker1}

从控制器运行此测试到所有工作节点。

您应该可以毫无问题地运行测试。

祝你好运!

Subbu