|
/
Zope
/
Apsis
/
Pound Mailing List
/
Archive
/
2005
/
2005-03
/
Pound vs. PLB
[
Pound vs. PLB / Tomas Kolda ... ]
[
Re: logging / Robert Segall ... ]
Pound vs. PLB
Tomas Kolda <kolda(at)lss.fd.cvut.cz> |
2005-03-01 14:23:07 |
[ SNIP ]
|
Hi all,
I'm searching for the best load balancer. I found Pound and it looks
great, but I thing it has high overhead, because of thread model. I use
flood tool from Apache Group and get static content at 1418req/s without
any balancer (at my localhost 2.6.9, Apache 1.3.). With Pound it is only
466req/s (I think it is create thread overhead). PLB makes 1438req/s.
But PLB doesn't have session support, that I need.
My questions:
Is it possible to speedup current version of Pound with using modified
kernel or threading library?
Is there any patch that use event library or asynchronous processing?
Thanks a lot
Tomas Kolda
|
|
|
Re: Pound vs. PLB
Seán Gabriel <gabriel(at)korsoft.com> |
2005-03-01 22:32:33 |
[ SNIP ]
|
On Tue, 2005-03-01 at 06:04, Tomas Kolda wrote:
> I'm searching for the best load balancer. I found Pound and it looks
> great, but I thing it has high overhead, because of thread model. I use
> flood tool from Apache Group and get static content at 1418req/s without
> any balancer (at my localhost 2.6.9, Apache 1.3.). With Pound it is only
> 466req/s (I think it is create thread overhead). PLB makes 1438req/s.
You're running Linux, right? (I assume 2.6.9 is your kernel version.)
Check to see if you're using the NPTL theading library or the older,
slower LinuxThreads by running the command "getconf
GNU_LIBPTHREAD_VERSION". If you're running NPTL then thread creation
overhead probably isn't the problem (NPTL creates threads *extremely*
fast, from what I understand).
--
Sean Gabriel Heacock
Telana Internet Services
http://www.telana.com/
|
|
|
Re: Pound vs. PLB
Tomas Kolda <kolda(at)lss.fd.cvut.cz> |
2005-03-02 20:18:11 |
[ SNIP ]
|
Thanks, that was nice tip, but there is not much speedup. I recompiled
glibc to support nptl and now your command outputs : NTPL 2.3.4.
I wrote my bechmark code, because flood and ab gives strange numbers. So
my bench use one process with select.
Here is numbers for 5 concurent connections and 1000 static files:
Only apache (time ./netbench -c 1000 -n 5 -u / -p 80 > /dev/null):
real 0m1.232s
user 0m0.007s
sys 0m0.080s
PLB (time ./netbench -c 1000 -n 5 -u / -p 8887 > /dev/null):
real 0m1.405s
user 0m0.008s
sys 0m0.075s
Pound (time ./netbench -c 1000 -n 5 -u / -p 8888 > /dev/null):
real 0m2.246s
user 0m0.028s
sys 0m0.091s
I also tried two computers each makes with Pound around 500req/s. If I
wrote them both in config, then it makes only 600req/s.
Seán Gabriel wrote:
>On Tue, 2005-03-01 at 06:04, Tomas Kolda wrote:
>
>
>>I'm searching for the best load balancer. I found Pound and it looks
>>great, but I thing it has high overhead, because of thread model. I use
>>flood tool from Apache Group and get static content at 1418req/s without
>>any balancer (at my localhost 2.6.9, Apache 1.3.). With Pound it is only
>>466req/s (I think it is create thread overhead). PLB makes 1438req/s.
>>
>>
>
>You're running Linux, right? (I assume 2.6.9 is your kernel version.)
>Check to see if you're using the NPTL theading library or the older,
>slower LinuxThreads by running the command "getconf
>GNU_LIBPTHREAD_VERSION". If you're running NPTL then thread creation
>overhead probably isn't the problem (NPTL creates threads *extremely*
>fast, from what I understand).
>
>
>
|
|
|
Re: Pound vs. PLB
Sascha Ottolski <sascha.ottolski(at)gallileus.de> |
2005-03-03 09:44:28 |
[ SNIP ]
|
Am Mittwoch, 2. März 2005 20:18 schrieben Sie:
> I also tried two computers each makes with Pound around 500req/s. If I
> wrote them both in config, then it makes only 600req/s.
just curious, do you have pound running on a seperate machine, or on one of
the two backends?
Cheers, Sascha
|
|
|
Re: Pound vs. PLB
Tomas Kolda <kolda(at)lss.fd.cvut.cz> |
2005-03-03 11:10:18 |
[ SNIP ]
|
Yes, pound is on one of my test backends. I expect that reverse proxy
will have much less overhead. Maybe I'm doing something wrong, but...
Finaly I want to have something like mod_backhand with wackamole, but
with completely free tools. Because backhand has bad licence. So many
backends connected to gateway and connected each other on private
network. If any of backend that owns the main IP for www.example.com
dies, then next backend set his external IP to www.example.com.
Something like wackamole.
Have you some idea how to make high available SQL (mysql). How can I
replicate data (online) on all of my backend? Or do you have one SQL
server for all backends? What to do if this one server fails?
At this time I'm trying to rewrite Pound to C++ (using stl) with
libevent. If anyone did that before, please contact me.
Thanks
Tomas
Sascha Ottolski wrote:
>Am Mittwoch, 2. März 2005 20:18 schrieben Sie:
>
>
>>I also tried two computers each makes with Pound around 500req/s. If I
>>wrote them both in config, then it makes only 600req/s.
>>
>>
>
>just curious, do you have pound running on a seperate machine, or on one of
>the two backends?
>
>Cheers, Sascha
>
>
|
|
|
Re: Pound vs. PLB
Sascha Ottolski <sascha.ottolski(at)gallileus.de> |
2005-03-03 11:36:35 |
[ SNIP ]
|
Am Donnerstag, 3. März 2005 11:10 schrieb Tomas Kolda:
> Yes, pound is on one of my test backends. I expect that reverse proxy
> will have much less overhead. Maybe I'm doing something wrong, but...
that might cause the relatively small gain with two backends: I've experienced
that a slow backend slows down the whole cluster, even if other backends are
much faster. on the backend that has to run pound in parallel the two might
be competing on resources. how to the numbers look if you have only one
backend, but that one proxied by a pound on a different machine, possibly
running your benchmark program on a third machine?
another idea might be to fiddle with the priorities for the backends, so that
the slower backend gets less traffic.
Cheers, Sascha
|
|
|
Re: Pound vs. PLB
Maciej Bogucki <maciej.bogucki(at)artegence.com> |
2005-03-03 11:38:56 |
[ SNIP ]
|
> Have you some idea how to make high available SQL (mysql). How can I
> replicate data (online) on all of my backend? Or do you have one SQL
> server for all backends? What to do if this one server fails?
There are several ways to make a mysql cluster:
http://www.mysql.com/products/cluster/
If You use php: http://sqlrelay.sourceforge.net/
If You use java: http://c-jdbc.objectweb.org/
Two webserver setup:
http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html
Basic MySQL Cluster Concepts:
http://dev.mysql.com/doc/mysql/en/mysql-cluster-basics.html
MySQL Cluster Overview:
http://dev.mysql.com/doc/mysql/en/mysql-cluster-overview.html
Or You can use database with recovery capabilities:
http://www.drbd.org/
We hava always found that seperating services out to different machines
works better than running multiple services on each machine!
Best Regards
Maciej Bogucki
|
|
|
|