Suggestions for HTTP Load Balancers?

OK Lazyweb! I need help……. Our Apache 2.2 cache and load balancing config is really falling down on the job. The cache is just way too buggy and unreliable.

First off. Their memory cache can serve corrupted content and can sometimes yield a cache miss when the data is clearly already in the cache. Second. The disk storage mechanism requires far too many inode for storage which yields too many disk seeks. It’s actually faster to serve the content from PHP than it is to use mod_disk_cache which is really sad.

The mod_proxy_balancer also doesn’t support a mechanism node removal on failure.

Long story short – avoid Apache 2.2.3 and their caching system like the plague.

Anyway. I was considering using Squid for our reverse proxy cache and maybe perlbal for our load balancer. It would be nice if I could configure Squid to do the load balancing directly but it doesn’t look like it supports this functionality.

Feedback would be appreciated!


  1. I like pound. No caching, but it’s rock-solid for balancing.

    I haven’t used perlbal, but if it’s anything like memcached and mogile, it’s got to be solid. The run-time stats and monitoring look nice, something I wish pound did.

  2. Spend the money and get a hardware device. BigIP/F5 or Redline/Juniper are the ones I know of — compression, load-balancing, and SSL termination all in one device.

    Spend the money — get something that can scale.

    smp

  3. Uhm dude. Don’t use mod_mem_cache. Its shit. its crap. It corrupts things. Its slow. Its everything you said.

    mod_disk_cache is a differnt story. Its fast. Its stable. It supports varied content. etc etc.

    The lesson: use mod_disk_cache with apache2.2 and be amazed by the insane difference between the two caching storage modules.

    * Yes, some of this is ‘our’ fault for not documenting the fact that mod_mem_cache is shit. Sorry. Refunds are at the other counter.

  4. I’d avoid memcache for large objects too…

    Check out:
    http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

    Along with the part about: Enabling Balancer Manager Support using Mod_status. Never tried it in production but been tempted…

    Then again, I almost always just use apache-1.3.XX w/ PHP5. Mostly because I like things to scale. ;-)

    -david

  5. Most of our customers use hardware load balancers. We have a Foundry load balancer that has worked well for several customers, so that’s what I would recommend as a first choice.

    Barry, WordPress’s sysadmin guru, has an article up here: http://barry.wordpress.com/2006/08/30/load-balancer-testing/ about load balancers that WordPress has tried, so that might help you as well.






%d bloggers like this: