load-testingtsung

Load testing and Tsung - Does it work on ec2?


I have tried to get tsung to work on ec2 but to no avail. Is this why people tend to use jmeter? Tsung works of a single host but not at all on ec2.

1) I have using the same zone thus using the private dns and ip on ec2.

2) I create a master and usig the following to create a ssh key on the master.

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

3) Then, on eash of the slaves I place the generated key into the auth keys.

/home/ubuntu/.ssh/authorized_keys

4) On the slaves my /etc/hosts file looks like this per the docs.

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

4) On the master I run sudo tsung start. I can ssh into the slaves without a password.

in the log file I get this error:

   =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) The documents provides tips on to resolve but those tips are by no means clear at all since I an still receiving this error. But, I have done all that is required on the list. a)ssh works without a password i.el ssh hostname erl b) removed app armor c) my hosts looks like this xxx.xxx.xxx ip-xxx-xxx-xxx

6) Below is my tsung.xml file.

<?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>

Solution

  • On the master machine do the follwoing:

    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
    

    or use the privite dns name

    or

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