Some questions about perlbal

Pedro Melo Cunha melo at
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
>> this?
> 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 
perlbal code.

>>   - 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 
>> in
>> 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 
> it
> to other reverse proxies as well.

Will do.

> What Perlbal's good for is real world performance stuff... not ab.  
> Things
> 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
> specs/capabilities.
> 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 
> proxy,
> 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 
the responses.

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 
does this;
  - sending attachments (static files really): the reproxy code should 
help here.
  - 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.

Best regards,
Pedro Melo Cunha - <melo at>
Novis Telecom, S.A. - Dir. Rede - ISP <>
Edifício Novis - Estrada da Outurela, 118 - 2795-606 Carnaxide
tel: +351 21 0104340 - fax: +351 21 0104301

More information about the perlbal mailing list