HP-UX TCP/IP Performance White Paper, March 2008

15
Firewall
Web Server
Load balancer
App Server
DB Server
Open Zone
DMZ MZ
http
https
Enterprise Data Center
Internet/Leased lines
4.1.1 Tuning Application Servers
Network traffic characteristics of a physical server which is used to run as an application server varies
based on its usage context and the nature of applications (business logic) that they run. Web applications
are normally implemented using technologies such as servlets and JSP scripts. For example, users first
connect to the Web server which in turn forwards the request to run an application. Such an application
may be implemented as a servlet on an application server. Based on the application logic, the application
server may need to access the back-end database server. Typically, application servers communicate with
front-end web servers or back-end database servers using a shared set of TCP connections an approach
known as connection pooling. Typically, Web servers reuse these connections for forwarding the requests
from different clients at different point in time. The connection pooling approach is preferred over creation
of new connections when needed for performance reasons. The number of TCP connections in the pool is
often configurable and is based on the number of concurrent users that the system needs to support during
peak load conditions.
Usually application server vendors may suggest a set of networking related tunable parameters that are best
suited to run the application server on a given OS platform. In this section we provide a set of guidelines on
tuning network tunable parameters to run application servers on HP-UX 11i.
Most of the tunable parameters discussed below are queried or set using ndd command on HP-UX. Please
refer to Appendix B for more details on these tunable parameters.
4.1.1.1 tcp_time_wait_interval
A physical server has to support large number of concurrent TCP connections if it is used to run both an
application server and a Web server simultaneously. tcp_time_wait_interval controls how long
connections need to be in the TIME_WAIT state before closing down. Often opening and closing of a large