Load Balancing Frequently Asked Questions
| | |
What is the performance of Proto Balance?
Proto Balance can perform between 1500 and 3000 new connections per
second per CPU Gigahertz on all supported hardware platforms.
Therefore to calculate the low bound, simply take the real CPU
clock speed in GHz and multiple it by 1500.
|
| | |
How many downloads/sec can I expect using HTTP 1.1?
Proto Balance can perform between 5000 and 8000 HTTP 1.1 requests
per second per CPU Gigahertz on all supported hardware platforms.
Therefore to calculate the low bound, simply take the real CPU
clock speed in GHz and multiple it by 5000.
|
| | |
How new SSL connections per second and Proto Balance SSL handle?
On x86 64-bit Unix systems (like AMD64 and Intel Core2 64-bit
and later), Proto Balance SSL can perform about 400 new SSL
negotiations per second per CPU Gigahertz.
On x86 64-bit Windows XP x64 Professional, Proto Balance SSL
can perform about 400 new SSL negotiations per second per CPU
Gigahertz.
On SPARC 64 platforms Proto Balance SSL can perform about 200
new SSL negotiations per second per CPU Gigahertz.
HP-UX PARISC 2.0 64-bit has performance in a similar range.
|
| | |
What are the minimum hardware requirements for running Proto Balance?
Proto Balance can handle 10000 concurrent connections using
under 512 megabytes of RAM. Proto Balance consumes only a few
megabytes of disk space.
|
| | |
Is there a licensing limit to the number of back-end servers over which I may distribute load?
There is none. You can have hundreds of back-end servers.
|
| | |
Is there a licensing limit to the number of clients that may connect to Proto Balance? Are there traffic or connection-rate limits?
There is none. Thousands of concurrent clients may connect. There are no
traffic or connection-rate limits.
|
| | |
What license is Proto Balance distributed under?
The Proto Balance license is a once-off purchase that allows
you to install Proto Balance on a single machine with an
unlimited number of back-end servers and an unlimited number
of clients. See the section "Licensing Terms".
|
| | |
I want to deploy a great many Proto Balance instances throughout my organization. What should I do?
Please contact us. We can provide bulk or organization-wide
licensing on request.
|
| | |
Will Proto Balance allow me to do hot deployments? What is a hot deployment?
Hot deployments are software deployments that incur no
downtime for the client users. With Proto Balance it is easy
to switch from one back-end server to another. So you can
re-deploy your server machines in sequence without ever
having a moment of total unavailability. The redeployment
is completely transparent to the client users.
|
| | |
Will Proto Balance allow me to add and remove back-end machines on-the-fly?
Yes. With Proto Balance you can add and remove back-end server
machines even during peek load.
|
| | |
Will Proto Balance use multiple processors on a multi-processor machine?
Yes. Proto Balance starts many concurrent threads/processes, so these
will be distributed to different processor cores.
|
| | |
Is Proto Balance a hardware load balancer? What is a hardware load balancer?
A hardware load balancer is a dedicated network appliance that
performs packet routing at the Ethernet or IP level. Proto
Balance is more suitable than a hardware load balance for most
applications because it provides more comprehensive and
controlled monitoring of the boxes in your cluster. Proto Balance
also runs on all popular platforms, which are easy to upgrade, or
replace in the event of failure.
|
| | |
What operating systems does Proto Balance run on? Is my platform supported?
Proto Balance is available for the following systems:
|
For the PC (80386/80486/Pentium and later):
Other Unix systems:
|
* HP-UX PA RISC (HP 9000 and variants)
|
| | |
My OS is not supported. What can I do?
Contact us to request support for other platforms.
|
| | |
When does Proto Balance fail a box? What does a box have to do for Proto Balance to think it has fallen over?
Any service running on a box should receive or send at least
one byte of data before closing the connection. If a
connection error or close occurs before 1 byte of data has
been transferred, then the box is deemed to have failed.
Note that HTTP protocols (included "Soap", "Web Services" and
ordinary web) return "500 Internal Server Error" and "503
Service Unavailable" when the server is overloaded or
undergoing maintenance. In this case the client is NOT
redirected to another box. (For Proto Balance to redirect
would require that it cache the entire HTTP request - which
could be large - and resubmit it to another box.) The client
is served the 500 or 503 error as any ordinary web page. The
500 or 503 error is however detected by Proto Balance and
Proto Balance fails that box. The box traffic light goes to
red status immediately. The "Last fallover" message in the
box configuration will show this HTTP error message.
|
| | |
How can I install Proto Balance on 64-bit Intel/AMD Linux systems?
If you get the error "No such file or directory" when trying
to run the installer, and you are using a 64-bit distribution
of Linux (such as Ubuntu-x86_64) then you need to install the
32-bit compatibility libraries. The Ubuntu/Debian package is
"ia32-libs". Simply type "apt-get install ia32-libs".
|
| | |
Does Proto Balance disable the Nagle Algorithm? What is the Nagle Algorithm?
The Nagle Algorithm queues short TCP packets and merges them
before sending. This can increase communication latency and
is inappropriate for a load balancer. Proto Balance disables
the Nagle Algorithm.
|
| | |
How do I listen on multiple ports?
See the section "Multiple Clusters".
|
| | |
How many clusters can I create?
Proto Balance has no limit to the number of clusters, and
should scale to thousands of clusters. However, testing has
only been done with a small number of clusters hence please
proceed with caution.
|
| | |
How many boxes can I create?
There is no limit to the number of boxes that you can create
per cluster. However, testing has only been done with a
moderate number of boxes. Proceed with caution over 200
boxes in total.
|
| | |
What is the MTTF (Mean Time To Failure) of Proto Balance?
Proto Balance has no known bugs, memory leaks, or other
resource leaks. It should run indefinitely under all the
platforms on which it is supported, provided that its
operation does not exceed configurable or inherent OS limits.
The MTTF is therefore that of the hardware and OS platform
under which it is running.
|
| | |
How do I see the IP address of the connecting client?
See the section "X-Forwarded-For HTTP header" under
"Advanced Options".
|
| | |
What is the maximum number of unique IP addresses I can have with server affinity mode?
This refers to the feature "remembering the client IP4/IP6
address" as used on Unix systems. With this feature enabled,
Proto Balance has memory space for recording the access of
1.5 million clients. Versions of Proto Balance before 200 do
not expire these entries. If you expect more than say, 1
million, unique IP addresses visiting your site then do not
enable this feature. Instead, see the section "Box affinity"
in the user manual, and enable "Box determined by hashing the
client address" - this will have a similar affect and ensure
that clients do connect to the same physical machine each
time.
Versions of Proto Balance after 200 (Proto Balance
Advanced and Proto Balance SSL) expire the oldest
clients from memory according to configurable
parameters. See the Info tab in the configuration
web page.
You may also increase shmmax over 128 megabytes, see "System
Settings for High Performance" in the user manual. A value of
134217728 is recommended, but can be increased to 268435456
or 536870912 if your operating system allows it, and if your
machine has sufficient physical memory. Remember that you
need at least twice the physical memory as the value of
shmmax.
Note that the option "-pthread" does not use shared memory,
therefore has no such limitation. Also, the option "-shared
mmap" is limited by other parameters.
|
| | |
What SysV shared memory key does Proto Balance use? Semaphore key?
The shared memory keys are from 27920 (0x6D10 in hex) to 27936 (0X6D20 in hex).
The semaphore lock key is 49565 (0xC19D in hex) to 49571 (0XC1A3 in hex).
These are not configurable.
|
| | |
How should I terminate Proto Balance? Can I use signal 9 (KILL) on Unix?
You should NEVER terminate Proto Balance with signal 9 (KILL
or SIGKILL). Termination can be done with any proper
terminating signal such as TERM, QUIT or INT
(SIGTERM/SIGQUIT/SIGINT). Alternatively, go to the "Info" tab
of the Proto Balance configuration web page and click on
"Force balancer to shutdown".
|
| | |
What is the maximum throughput possible with Proto Balance?
Proto Balance makes efficient use of your OS, however
operating systems vary in performance. Proto Balance should
saturate your network interface if it is at all possible to
do so in user-space for your hardware+OS combination.
At very large numbers of concurrent connections, Proto
Balance total throughput will be degraded. This can be
quite pronounced on certain operating systems.
|
| | |
On Windows I get the error "there is already another application listening on port 8080 on interface ALL..."? What do I do?
This means either that Proto Balance is already running, or
that another application is listening on this port. If there
is another application using port 8080, you will have to stop
it first. Try un-installing any Web Service, Oracle, and
application-server software.
Otherwise you can use the -configport option as explained
in the Proto Balance top-level window.
|
| | |
On Windows I get the error "Only one usage of each socket address..."? What do I do?
You are running out of certain TCP resources. Follow the
instructions under "System Settings for High Performance with Your Operating System".
|
| | |
Does Proto Balance use any custom kernel modules, kernel plug-ins, tap devices, low-level networking interception?
None. Proto Balance is an ordinary user-space executable.
|
| | |
What kind of testing has Proto Co Networking done on Proto Balance?
Besides the performance testing above, Proto Balance has been
run for hundreds of hours continuously at network-saturation
load. Proto Balance has been verified under memory profiling
tools such as Valgrind and Purify. Proto Balance incurred no
errors or warnings by either of these tools and had flat OS
resource consumption.
The Proto Co Networking team uses an internally developed
TCP-scenario automated test harness, and on-site hardware for
all supported platforms.
Proto Balance is self-monitoring with over 750 different
internal consistency tests.
|
Portions of this software:
Copyright (c) 1990, 1993, 1994 The Regents of the
University of California. All rights reserved.
This code is derived from software contributed to Berkeley by
Margo Seltzer.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. |
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
|
2. |
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
|
3. |
All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by the University of
California, Berkeley and its contributors.
|
4. |
Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
|
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.