Some questions about perlbal
Pedro Melo Cunha
melo at isp.novis.pt
Sat Jan 29 13:40:47 PST 2005
On 29/jan/2005, at 20:56, Brad Fitzpatrick wrote:
> On Sat, 29 Jan 2005, Pedro Melo Cunha wrote:
>> I got perlbal running on a small server for testing purposes. I have a
>> large mod_perl application that uses a lot of memory, and I'm testing
>> perlbal to put in front of this app, to try and reduce the number of
>> backends. I have some doubts:
>> - is it possible to have perlbal treat locally a part of the
>> uri-space? For ex: all the /static/ url's can be send directly from
>> local disk without going to the backend. Do I have to use reproxy for
> I believe yes, but Mark will have to reply with the details.
I saw this line in the config:
#SET web_proxy.serve_top_directories = /static/, /doc/server/,
but I cannot find (fgrep -i) the string serve_top_directories in the
>> - any general ideias about how to tune performance? My first results
>> with ab where not that good (with perlbal, my site is 4 times slower
>> terms of request per second.
> I'm not sure ab is the best way to measure Perlbal's utility.
Yes, you are right... I was going home driving and I also came to that
conclusion... Also I was testing with static content, also not a good
> Also, of course it'll be slower going through two layers. I'd compare
> to other reverse proxies as well.
> What Perlbal's good for is real world performance stuff... not ab.
> like buffering responses to users (who aren't as fast as ab) and
> intelligently dealing with HTTP responses from backend web nodes that
> differ wildly in response time, including machines with very different
> And the main reason for Perlbal: the reproxy code.
> If you don't need to reproxy, and you don't have multiple machines you
> need to load balance amongst, there isn't a huge reason to use any
> including Perlbal.
> What are you looking for?
The target application is a mod_perl webmail. It's very heavy (CPU and
memory-wyse). I currently use a apache2 doing reverse proxy to cache
I'm looking to perlbal to do the following:
- persistent connections to the backend: the version of mod_proxy2
does not does this. I'll have to check the current versions;
- caching of pages to slow users: mod_proxy2 does this, perlbal also
- sending attachments (static files really): the reproxy code should
- sending static content directly from the reverse proxy.
Our setup is a alteon layer4 switch to balance 3 backends. Each backend
runs mod_proxy2 connecting to localhost:8080 where mod_perl does all
the work. I use mod_rewrite in mod_proxy2 to send images and CSS
I'm still trying to figure the final arch: I'll probably still use the
alteon, balancing 2 perlbal boxes, that talk to the 3 backends.
Another solution is to put a perlbal on all the backends, and have each
one talk to a single backend (via localhost) and let the alteon do the
Still another solution is to use the previous setup, 3 perlbals and 3
backends, but make perlbal talk to all three backends, but that would
make pelrbal talk to 3 backends with one of them via localhost and the
other 2 via network, diferent latencies.
So, I'm still looking into all this.
Thanks for you time, though, and good luck to all Danga staff with
SixApart. love the software, of both your companies.
Pedro Melo Cunha - <melo at isp.novis.pt>
Novis Telecom, S.A. - Dir. Rede - ISP <http://www.novis.pt/>
Edifício Novis - Estrada da Outurela, 118 - 2795-606 Carnaxide
tel: +351 21 0104340 - fax: +351 21 0104301
More information about the perlbal