Hi all,

In case someone else is trying to use Jmeter to test their web environment
in amazon's ec2 using the default load balancer (ELB), I've painfully
learned some lessons I'd like to pass on in a consolidated form:
1.) The ELB is a name, not IP, and suffers from caching.  Make sure you use
"-Dsun.net.inetaddr.ttl=0" when starting JMeter
2.) For a given ELB IP, there seems to be a static mapping of client IP <->
backend instance.  This is a slightly complicated statement that assumes a
some knowledge of how amazon in general, and ELBs in particular, work.  If
it's still up, this page:
http://www.shlomoswidler.com/2009/07/elastic-in-elastic-load-balancing-elb.html
has pretty much everything you need to know.  But the basic idea is that the
ELB is supposed to balance the inbound traffic to the currently known &
healthy backend instances (e.g. the boxes you actually control).  At any
given time, the ELB DNS name resolves to a pool of ELB IP addresses (which
grows or shrinks based on load).  The TTL on an ELB name (which is owned &
controlled by amazon, e.g. loadbalancer123.amazon.com) is 60 seconds.  And
again, in practice I've found the load balancing to be per client/ELB IP,
rather than per request.

Specifically, the behavior I've seen in JMeter is:
-I start a test that generates a small amount of load forever
-I check backend instances, and all load in on one box
-On the JMeter box, I run "dig mydomain.com" and watch the TTL count down
from 60 to 0
-If the ELB IP changes, all load moves to a different backend instance (and
if the ELB IP stays the same, it stays in the same place)

will

Reply via email to