Download Latest Version pen-0.34.0.tar.gz (184.5 kB) Get Updates
Home / Source
Name Modified Size InfoDownloads / Week
Parent folder
Old 2015-01-05
pen-0.34.0.tar.gz 2016-10-31 184.5 kB
pen-0.33.2.tar.gz 2016-09-08 183.8 kB
pen-0.33.1.tar.gz 2016-05-03 183.8 kB
pen-0.33.0.tar.gz 2016-04-07 183.7 kB
pen-0.32.0.tar.gz 2015-11-23 182.5 kB
pen-0.31.1.tar.gz 2015-11-05 181.2 kB
pen-0.31.0.tar.gz 2015-10-12 180.9 kB
pen-0.30.1.tar.gz 2015-09-15 182.4 kB
pen-0.30.0.tar.gz 2015-08-18 675.8 kB
pen-0.29.0.tar.gz 2015-06-08 675.8 kB
pen-0.28.0.tar.gz 2015-05-20 172.8 kB
pen-0.27.5.tar.gz 2015-04-10 161.2 kB
pen-0.27.4.tar.gz 2015-04-08 161.1 kB
pen-0.27.3.tar.gz 2015-03-30 159.7 kB
pen-0.27.2.tar.gz 2015-03-05 158.4 kB
pen-0.27.1.tar.gz 2015-02-19 164.1 kB
pen-0.27.0.tar.gz 2015-02-12 163.5 kB
pen-0.26.1.tar.gz 2015-02-04 159.6 kB
pen-0.26.0.tar.gz 2015-02-04 157.0 kB
pen-0.26.0beta2.tar.gz 2015-01-26 155.4 kB
pen-0.26.0beta1.tar.gz 2015-01-09 153.2 kB
pen-0.25.1.tar.gz 2015-01-05 150.2 kB
pen-0.25.0.tar.gz 2015-01-05 150.1 kB
pen-0.24.0.tar.gz 2015-01-05 149.6 kB
pen-0.23.0.tar.gz 2015-01-05 149.7 kB
pen-0.22.1.tar.gz 2015-01-05 169.8 kB
pen-0.22.0.tar.gz 2015-01-05 169.8 kB
pen-0.21.1.tar.gz 2015-01-05 168.5 kB
pen-0.21.0.tar.gz 2015-01-05 168.5 kB
pen-0.20.2.tar.gz 2015-01-05 168.9 kB
pen-0.20.1.tar.gz 2015-01-05 160.3 kB
pen-0.20.0.tar.gz 2015-01-05 153.7 kB
pen-0.19.0.tar.gz 2015-01-05 153.5 kB
pen-0.18.0.tar.gz 2015-01-05 130.3 kB
pen-0.18.0pre1.tar.gz 2015-01-05 130.0 kB
pen-0.17.3.tar.gz 2015-01-05 129.7 kB
pen-0.17.2.tar.gz 2015-01-05 129.3 kB
pen-0.17.1.tar.gz 2015-01-05 117.0 kB
pen-0.17.0.tar.gz 2015-01-05 116.9 kB
pen-0.16.0.tar.gz 2015-01-05 115.7 kB
pen-0.15.0.tar.gz 2015-01-05 112.9 kB
pen-0.14.0.tar.gz 2015-01-05 112.3 kB
pen-0.13.0.tar.gz 2015-01-05 111.6 kB
pen-0.12.3.tar.gz 2015-01-05 107.7 kB
pen-0.12.2.tar.gz 2015-01-05 107.2 kB
pen-0.12.1.tar.gz 2015-01-05 96.7 kB
pen-0.12.0.tar.gz 2015-01-05 94.8 kB
Totals: 48 Items   8.1 MB 5
This is pen, a load balancer for udp and tcp based protocols such as dns, http or smtp. It allows several servers to appear as one to the outside and automatically detects servers that are down and distributes clients among the available servers. This gives high availability and scalable performance. The load balancing algorithm keeps track of clients and will try to send them back to the server they visited the last time. The client table has a number of slots (default 2048, settable through command-line arguments). When the table is full, the least recently used one will be thrown out to make room for the new one. This is superior to a simple round-robin algorithm, which sends a client that connects repeatedly to different servers. Doing so breaks applications that maintain state between connections in the server, including most modern web applications. When pen detects that a server is unavailable, it scans for another starting with the server after the most recently used one. That way we get load balancing and "fair" failover for free. Correctly configured, pen can ensure that a server farm is always available, even when individual servers are brought down for maintenance or reconfiguration. The final single point of failure, pen itself, can be eliminated by running pen on several servers, using vrrp to decide which is active. A side-effect of load-balancing web servers is that several logfiles are produced, and all accesses seem to come from the load balancer. The program penlogd solves this problem by merging pen's log file with the ones produced by the web servers. See penlogd(1) and penlog(1) for details. This load balancer is known to work on FreeBSD, Linux, HP-UX and Solaris. Other Unixes should work as well, possibly requiring trivial changes. Success stories or problem reports are welcome. If pen is started with the -w option, statistics are saved in html format when a USR1 signal is received. The cgi script penstats can be used to simplify this; it must be edited to reflect local conditions. I am Ulric Eriksson, ulric@siag.nu.
Source: README, updated 2015-01-05