【问题标题】:Load testing and Tsung - Does it work on ec2?负载测试和 Tsung - 它适用于 ec2 吗?
【发布时间】:2026-02-15 14:30:01
【问题描述】:

我试图让 tsung 在 ec2 上工作,但无济于事。这就是人们倾向于使用jmeter的原因吗? Tsung 在单个主机上工作,但在 ec2 上根本没有。

1) 我使用的是同一个区域,因此在 ec2 上使用了私有 dns 和 ip。

2) 我创建了一个 master 并使用以下内容在 master 上创建一个 ssh 密钥。

cd /home/ubuntu/.ssh;
   ssh-keygen -f id_rsa -t rsa -N ''

3) 然后,在从属设备上,我将生成的密钥放入身份验证密钥中。

/home/ubuntu/.ssh/authorized_keys

4) 在从属服务器上,根据文档,我的 /etc/hosts 文件如下所示。

xxx.xxx.xxx.xxx ip-10-xxx-xxx-xxx

4) 在主服务器上我运行 sudo tsung start。我可以 ssh 进入奴隶 没有密码。

在日志文件中我收到此错误:

   =INFO REPORT==== 28-May-2012::03:51:12 ===
       ts_config_server:(0:<0.76.0>) Can't start newbeam on host
'ip-xxx-xxx-xxx (reason: timeout) ! Aborting!]]

5) 文档提供了解决问题的技巧,但这些技巧并没有 意味着完全清楚,因为我仍然收到此错误。但是我有 完成了清单上要求的所有事情。 a)ssh 无需密码即可工作 i.el ssh 主机名 erl b) 移除应用装甲 c) 我的主机看起来像这样 xxx.xxx.xxx ip-xxx-xxx-xxx

6) 下面是我的 tsung.xml 文件。

<?xml version="1.0"?>
   <!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
   <tsung loglevel="debug" dumptraffic="true" version="1.0">

   <clients>
                   <client host="ip-10-xxx-xxx-xxx" cpu="1"><ip
value="10.yyy.yyy.yyy"></ip></client>
   </clients>
   <servers>
           <server host="xxx.xxx.xxx.xxx" port="80" type="tcp"></server>
   </servers>

    <load>
      <arrivalphase phase="1" duration="1" unit="minute">
        <users interarrival="100" unit="second"></users>
      </arrivalphase>
    </load>


    <options>
      <option type="ts_http" name="user_agent">
       <user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686;
en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
       <user_agent probability="20">Mozilla/5.0 (Windows; U; Windows
NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent>
      </option>
     </options>

     <sessions>
     <session name="http-example" probability="100" type="ts_http">
       <!-- full url with server name, this overrides the "server"
config value -->
       <request> <http url="/pixel" method="GET"
version="1.1"></http> </request>
       <thinktime value="1" random="true"></thinktime>
     </session>
    </sessions>
   </tsung>

【问题讨论】:

  • 您的问题解决了吗?我也有类似的问题。
  • 嗨,是的...我解决了。我现在将发布答案。

标签: load-testing tsung


【解决方案1】:

在主机上执行以下操作:

cd /home/ubuntu/.ssh
ssh-keygen -f id_rsa -t rsa -N ''
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa 

for each slave:
    ssh-keyscan EC2_PUBLIC_DNS_NAME | tee -a ~/.ssh/known_hosts

或使用私有 dns 名称

#        You can add this in .ssh/config on the master node:
#        >
#        > Host *
#        >        StrictHostKeyChecking no

【讨论】:

    【解决方案2】:

    我在不同 AWS 区域使用主代理和代理时遇到了这个问题。即使我在主机和代理的主机文件中配置了假主机名,他们也在内部 AWS DNS 上进行解析。

    我只需要更改主主机名即可解决问题(加上主机文件配置)。

    还要小心设置 AWS 之类的主机名:在我使用 ubuntu 18 的情况下,将 ip-X-X-X-X 设置为内部或外部 IP 会在 syslog 中生成 DNS 安全警报并立即终止 tsung 进程。

    【讨论】: