【问题标题】:tsung ts_config_server Can't start newbeam on host (reason: timeout) Abortingtsung ts_config_server 无法在主机上启动 newbeam(原因:超时)正在中止
【发布时间】:2012-07-19 18:20:00
【问题描述】:

我目前正在对 Amazon 的 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 和 UPD 并且没有 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:start 的所有参数中,只有一个不存在,即 -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

【问题讨论】:

    标签: erlang timeout load-testing tsung beam


    【解决方案1】:

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

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

    4.确保所有机器都可以互相访问

    5.运行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] [ kernel-poll:false]

    Eshell V5.10.4(使用 ^G 中止)(daya@ip-10-0-100-224.ec2.internal)1> slave:start("worker1.com",bar,"-setcookie tsung") .

    警告:将“worker1,10.0.100.225”(ECDSA) 永久添加到已知主机列表中。 {ok,bar@worker1}

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

    您应该能够毫无问题地运行测试。

    祝你好运!

    分部

    【讨论】:

      【解决方案2】:

      我使用 git 的最新版本重新编译并且它可以工作 --- 奇怪的是它不适用于我安装的 deb 包...

      向您展示 - 不确定时从源代码编译!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-23
        • 1970-01-01
        • 2015-01-04
        • 2021-02-07
        • 1970-01-01
        • 2017-01-18
        • 2021-11-08
        • 2020-04-20
        相关资源
        最近更新 更多