Don't use Pound for load balancing
By Emmett on Monday, March 3 2008, 18:35 - Permalink
We were using Pound for load balancing at Justin.tv until today. It was consistently using about 20% CPU, and during spikes would use up to 80% CPU. Under extremely high load, it would occasionally freak out and break.
We just switched to Ngnix, and load immediately dropped to around 3% CPU. Our pages feel a little snappier, although that might be my imagination. Not only is the config format easier to understand and better documented, but it offers a full webserver's complement of functionality. We haven't hit any spikes yet, but given the current performance I suspect it will cream pound.
In short: Pound is out-dated. Nginx is a good replacement, although there are many, many, many other options I haven't tried.

Edit: More data now available!

Comments
Great post, Emmett!
nginx is great with both memory and cpu usage. been using it on http://skribit.com for a while now.
I recall reading something similar last year and ended up deploying http://rankforest.com with just Nginx. Good to see some hard data from someone with a site that surely gets heavy traffic.
Beware the naive round-robin load balancing! If one of your processes hangs, it will keep queuing requests on it - even though all other processes might be doing nothing.
There's an experimental "fair" load balancing plugin - we've had reasonable luck with it.
We are using LVS for loadbalancing and it seems that it almost doesn't need any cpu time at all, even at peaks it doesnt go over 5% (on a P4 3Ghz) and peaks are like 2K requests per second.
Thanks Jason...I'll look into using that plugin.
I use nginx as back-end and it works great :)
Thanks for graphs with pound!
Why you think Nginx is a good replacement for pound ? Pound is Load balancer (like LVS), and Nginx is a web server (like apache, IIS ...). I don't think they have any relationship ?
The distinction between a web server and a load balancer like Pound is trivial. Nginx can do everything pound can do (balance incoming requests across backends) and many more things (serve files, do complex access control, etc.).
We are using crossroads (http://crossroads.e-tunity.com) for our load balancers. It's much faster and has a lot of advanced features like access control and dos prevention.
I just spent a few hours reading about Pen and Pound. NGinx sounds like a good solutions, though I have to deal with SSL. Will explore it some more as well as Crossroads mentioned in a post.
- Lou
It sounds like you are running load balancing on the same server you are using to handle web requests.
That's not what Pound was intended for, and it's not a recommendable solution. Load balancer should run on a different, dedicated machine. In that config, performance should not be an issue. If your server is also a load balancer, you are doubly screwed if the server has problems, is DOS overloaded, etc.
-t
+1
At GROU.PS we used Pound and it was terrible! It starts melting at 1500 connections. It's old. I read something similar at a Wordpress.com developer blog too. Nginx looks pretty good, we've recently started experimenting with it. Thanks for sharing your experiences, it's good to know what others are doing.
LVS is a layer 4 loadbalancing solution whereas nginx acts as a layer 7 (app layer) proxy.They are different.LVS is great in performance and nginx is better in its flexible controling over its backend servers.