Mailing List Archive

Varnish and Perlbal
Hello all.

I'm a newbie to Varnish and I'm evaluating it in order to know if/how
there is an advantage in adding it to our application flow. (well,
I'm pretty much convinced there IS an advantage so now I'm just
looking for the best way to use it).

Right now I have 2 Perlbals balancing requests to 4 apache backends.
I'm very happy with Perlbal's load balancing capabilities so I'm
looking for the best way to integrate varnish with this Perlbal
+Apache configuration. Which should come first in the flow; Perbal or
Varnish?

I read here in the list someone saying that they had Varnish
alongside apache, but this way I would have 4 separate caches. In my
case it seems a better idea to have Varnish in the 2 Perlbal machines
since Perlbal uses only one processor and very little RAM. What do
you guys think?

Thanks and keep up the good work!

Andr? Cruz
Varnish and Perlbal [ In reply to ]
Hello all.

I'm a newbie to Varnish and I'm evaluating it in order to know if/how
there is an advantage in adding it to our application flow. (well,
I'm pretty much convinced there IS an advantage so now I'm just
looking for the best way to use it).

Right now I have 2 Perlbals balancing requests to 4 apache backends.
I'm very happy with Perlbal's load balancing capabilities so I'm
looking for the best way to integrate varnish with this Perlbal
+Apache configuration. Which should come first in the flow; Perbal or
Varnish?

I read here in the list someone saying that they had Varnish
alongside apache, but this way I would have 4 separate caches. In my
case it seems a better idea to have Varnish in the 2 Perlbal machines
since Perlbal uses only one processor and very little RAM. What do
you guys think?

Thanks and keep up the good work!

Andr? Cruz
Varnish and Perlbal [ In reply to ]
Andr? Cruz <andre.cruz at segula.pt> writes:
> Right now I have 2 Perlbals balancing requests to 4 apache backends.
> I'm very happy with Perlbal's load balancing capabilities so I'm
> looking for the best way to integrate varnish with this Perlbal +
> Apache configuration. Which should come first in the flow; Perbal or
> Varnish?

Probably the easiest way to integrate Varnish, at least to begin with,
is to run it on the same servers as Apache. This way, cache misses are
processed without network overhead, and you can easily run Varnish on
just one server in each pair to compare performance.

Running Varnish on the Perlbal servers will halve the load on each
Apache server, but increase the response time for cache misses.

DES
--
Dag-Erling Sm?rgrav
Senior Software Developer
Linpro AS - www.linpro.no
Varnish and Perlbal [ In reply to ]
Ok, I'll try it both ways to test.

And regarding my other question... Should Perlbal handle the request
first, and pass it to some varnish process or should varnish process
the request first and send only the misses to PerlBal+Apache?

Perlbal is probably better at load-balancing since it is it's core
function, no?

Thanks for your help,
Andr?

On 2007/07/02, at 12:43, Dag-Erling Sm?rgrav wrote:

> Andr? Cruz <andre.cruz at segula.pt> writes:
>> Right now I have 2 Perlbals balancing requests to 4 apache backends.
>> I'm very happy with Perlbal's load balancing capabilities so I'm
>> looking for the best way to integrate varnish with this Perlbal +
>> Apache configuration. Which should come first in the flow; Perbal or
>> Varnish?
>
> Probably the easiest way to integrate Varnish, at least to begin with,
> is to run it on the same servers as Apache. This way, cache misses
> are
> processed without network overhead, and you can easily run Varnish on
> just one server in each pair to compare performance.
>
> Running Varnish on the Perlbal servers will halve the load on each
> Apache server, but increase the response time for cache misses.
>
> DES
> --
> Dag-Erling Sm?rgrav
> Senior Software Developer
> Linpro AS - www.linpro.no
Varnish and Perlbal [ In reply to ]
Andr? Cruz <andre.cruz at segula.pt> writes:
> And regarding my other question... Should Perlbal handle the request
> first, and pass it to some varnish process or should varnish process
> the request first and send only the misses to PerlBal+Apache?

Isn't that really the same question? Either you run Varnish in front of
Perlbal on the Perlbal servers, or you run it in front of Apache on the
Apache servers.

> Perlbal is probably better at load-balancing since it is it's core
> function, no?

Considering that Varnish doesn't do load balancing at all (yet), I would
concur that Perlbal is probably better at it :)

DES
--
Dag-Erling Sm?rgrav
Senior Software Developer
Linpro AS - www.linpro.no
Varnish and Perlbal [ In reply to ]
----- Andr? Cruz <andre.cruz at segula.pt> wrote:
> Ok, I'll try it both ways to test.
>
> And regarding my other question... Should Perlbal handle the request
>
> first, and pass it to some varnish process or should varnish process
>
> the request first and send only the misses to PerlBal+Apache?
>
> Perlbal is probably better at load-balancing since it is it's core
> function, no?
>
> Thanks for your help,
> Andr?

Andr?,

If we can assume one of the reasons you want to use Perlbal is to achieve some sort of failover capability, I would say place Perlbal in front of Varnish. If you have another provision to handle that and you only want to improve performance I would say it depends on your application really. I completely agree with DES though that implementing Varnish locally on the same box as apache is indeed the path of least configuration and fewest changes :P

From what I have read on Perlbal it should be suited for placement in front of a cache such as varnish.

Could I ask what your experience with Perlbal is? Is it a nice loadbalancer? How does your setup with it look like? What kind of traffice do you see?


I gather the Varnish project is looking to implement some sort of basic load balancing capabilities into Varnish at some point in time.

Regards
--
Denis Braekhus - Teknisk Ansvarlig ABC Startsiden AS
http://www.startsiden.no
Varnish and Perlbal [ In reply to ]
On 2007/07/02, at 14:59, Dag-Erling Sm?rgrav wrote:
> Andr? Cruz <andre.cruz at segula.pt> writes:
>> And regarding my other question... Should Perlbal handle the request
>> first, and pass it to some varnish process or should varnish process
>> the request first and send only the misses to PerlBal+Apache?
>
> Isn't that really the same question? Either you run Varnish in
> front of
> Perlbal on the Perlbal servers, or you run it in front of Apache on
> the
> Apache servers.
>

Well... You can run varnish on the Perlbal servers and Perbal can
still be in front of Varnish. But since varnish doesn't do load
balancing it seems that it's better to let Perlbal handle the request
first.

I would prefer to run Varnish on the Perlbal machines because they
have 4 processors and lots of RAM, largely unused by perlbal. The
apache machines on the other hand.... :) Again, if Varnish can't
select a backend from a pool to satisfy cache misses then I may just
as well have one Varnish for each apache and run them on the same
machine... We'll see.

>> Perlbal is probably better at load-balancing since it is it's core
>> function, no?
>
> Considering that Varnish doesn't do load balancing at all (yet), I
> would
> concur that Perlbal is probably better at it :)
>

Ok, got it. :)

Thanks again,
Andr?
Varnish and Perlbal [ In reply to ]
On 2007/07/02, at 15:00, Denis Br?khus wrote:
>
> Andr?,
>
> If we can assume one of the reasons you want to use Perlbal is to
> achieve some sort of failover capability, I would say place Perlbal
> in front of Varnish. If you have another provision to handle that
> and you only want to improve performance I would say it depends on
> your application really. I completely agree with DES though that
> implementing Varnish locally on the same box as apache is indeed
> the path of least configuration and fewest changes :P
>

I'll start with that scenario then.

> From what I have read on Perlbal it should be suited for placement
> in front of a cache such as varnish.
>
> Could I ask what your experience with Perlbal is? Is it a nice
> loadbalancer? How does your setup with it look like? What kind of
> traffice do you see?
>

I use Perlbal for more than a year now and it has been a very good
experience. Besides the great performance we have developed some
custom plugins for it which I don't think would be possible with
other solutions. We have numerous applications that use it... As an
example, in one of them we have 2 perlbal servers in front of a pool
of 4 apache servers and a traffic of about 40 Mbit/s. Without Perlbal
all the apache workers would get used up quickly.

Hope it helps,
Andr? Cruz