
TABLE2–3 Keep-AliveStatistics (Continued)
ConnectionTimeout 10
BothHTTP 1.0 and HTTP 1.1 support the ability to send multiple requests across a single
HTTPsession. A web server can receive hundreds of new HTTP requests per second. If every
requestwas allowed to keep the connection open indenitely, the server could become
overloadedwith connections. On UNIX and Linux systems, this could lead to a le table
overowvery easily.
Todeal with this problem, the server maintains a counter for the maximum number of waiting
keep-aliveconnections. A waiting keep-alive connection has fully completed processing the
previousrequest, and is now waiting for a new request to arrive on the same connection. If the
serverhas more than the maximum waiting connections open when a new connection waits for
akeep-alive request, the server closes the oldest connection. This algorithm keeps an upper
boundon the number of open waiting keep-alive connections that the server can maintain.
SunJava System Web Server does not always honor a keep-alive request from a client. The
followingconditions cause the server to close a connection, even if the client has requested a
keep-aliveconnection:
■Thekeep alive timeout is set to 0.
■Thekeep alive maximum connections count is exceeded.
■Dynamiccontent, such as a CGI, does not have an HTTP content-length header set. This
appliesonly to HTTP 1.0 requests. If the request is HTTP 1.1, the server honors keep-alive
requestseven if the content-length is not set. The server can use chunked encoding for
theserequests if the client can handle them (indicated by the request header
transfer-encoding: chunked).
■Therequest is not HTTP GET or HEAD.
■Therequest was determined to be bad. For example, if the client sends only headers with no
content.
Thekeep-alive subsystem in Web Server is designed to be massively scalable. The
out-of-the-boxconguration can be less than optimal if the workload is non-persistent (that is,
HTTP1.0 without the KeepAlive header), or for a lightly loaded system that’s primarily
servicingkeep-alive connections.
Keep-AliveCountThissection in perfdump has two numbers:
■Numberof connections in keep-alive mode (total number of connections added)
■Maximumnumber of connections allowed in keep-alive mode simultaneously (maximum
connectionsize)
UsingMonitoringData to TuneYour Server
SunJavaSystem Web Server 7.0 Update 1 Performance Tuning,Sizing, and Scaling Guide •54