|
Pound and Pen - Simple Load Balancing
Pound and Pen are simple web server load balancers licensed under the GPL that run mainly on Unix based operating systems. Pound is a web (port 80) load balancer only, unlike Pen which is ...
Go to Web Site
|
|
|
|
Pound and Pen are simple web server load balancers licensed under the GPL that run mainly on Unix based operating systems. Pound is a web (port 80) load balancer only, unlike Pen which is designed to balance any simple TCP/IP protocol, including http, smtp, ftp, and others. Before you decide to load balance your website with one of these software programs there are several other considerations you may want to understand.
A major difference between Pound and Pen is how they handle SSL (port 443) connections. The Secure Socket Layer (SSL) protocol provides a method to achieve an encrypted communication between programs. Encryption is an important feature for e-commerce applications and other sensitive data communication applications. Pound has had built in support for the HTTPS protocol from version 1.0, which was released in the year 2002. The support is built-in as part of Pound. Pen supports SSL through a specialized external program: Stunnel. Stunnel is a program designed to provide encryption to any TCP connection. Stunnel is commonly used to encrypt email, mysql connections, and other traditionally non encrypted ports. Some SSL code was introduced in Pen version 0.13.0 in April of 2004. However the SSL code is labeled "highly experimental" and the author still recommends the use of stunnel when in need of SSL along with load balancing.
Another important design difference between the two is the use of threads versus a single process model. Pound uses threads while Pen uses the select() system call within one process. Pen can also be compiled with the poll() system call function. Either way Pen will run under one process only. It uses either select() or poll() in a single process and it multiplexes the connections coming in.
Pound running under Linux treats each thread as a process, and each process requires its own set of file descriptors and server resources. On BSD systems the thread library does not treat each thread as a process and is not as big of an issue. Since threads are independent processes each thread can run under different CPUs if you had a SMP system as your load balancing server.
Pen remains lean and fast by only using one process. And although it cannot take advantage of a multiple CPU system is a well proven program. There are testimonials of Pen balancing over 8000 connections without any problems.
There are other limitations. Both threads and the select() function have built in limitations in the number of simultaneous threads and simultaneous connections. In Linux systems the select() function has a limit of 2048 connections (TCP sockets). This can be circumvented by recompiling the kernel or compiling pen to use poll(). If you decide to compile Pen to use poll() the file descriptor limitation disappears, but other potential problems can arise. [1] You can read further on how to run Pen with Lots of Connections [2]
In most systems' thread libraries you have a 1024 thread limit. With threaded programs the memory requirements will be higher than with single process programs.
One last difference is that Pound supports HTTP version 1.1 and has support for multiple domains for the same IP address -- virtual hosting. Pen only supports HTTP version 1.0. Mainly the reason is because Pound is specifically built as web server load balancer, and Pen is load balancer for any simple TCP/IP protocol.
[...]
Finish Reading at Faster, Smaller, Cheaper
http://faster-smaller-cheaper.com
|
|
|
|
|
Copyright © 2003 - 2008 URL.biz. All rights reserved. |
|