You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

JMeter and Amazon

Elastic Load Balancer (ELB) Issues

  • The ELB is a name, not IP, and suffers from DNS caching. Make sure you use "-Dsun.net.inetaddr.ttl=0" when starting JMeter
  • 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
  • No labels