Load testing and Tsung - Does it work on ec2?
load-testing, 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
Problem
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> ```