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

17
4.1.1.6 tcphashsz
tcphashsz controls the size of several hash tables maintained within the kernel. For better performance it
is better to have larger tables at the expense of more memory being used when there is a large number of
concurrent connections in the system. On modern-day servers memory may not be a major constraint.
When Web server and application servers are run on the same physical machine, the suggested value for
this tunable parameter is 32768. If Web server and application servers are running on different machines,
then the number of concurrent connections on the application server may not be very large. In this case the
default value (number of CPUs * 1024) should suffice. This parameter is set using the following command:
# kctune tcphashsz=32768
Please note that system has to be rebooted for the new value to take effect. Otherwise system will continue
to use the current value of the tcphashsz parameter.
Refer to section 4.2.3 on page 21 for more discussion on tuning tcphashsz.
4.1.2 Tuning Database Servers
There are several different database systems that are deployed today on HP-UX. Typically networking may
not be a bottleneck on a database server as compared to I/O. Nevertheless, the following tuning may help
improve the overall efficiency from a networking perspective.
4.1.2.1 tcp_xmit_hiwater_def
This parameter controls the amount of unsent data that can be queued to the connection before subsequent
attempts by the application to send data will cause the call to block or return EWOULDBLOCK/EAGAIN if
the socket is marked non-blocking. For typical OLTP types of transactions (short requests and short
responses) this parameter needs no tuning. However, you may consider increasing it to 65536 from the
default value 32768 for DSS (Decision Support System) or BI (Business Intelligence) workloads that require
a large amount of data to be transferred from the database server. Furthermore, this may help in data
backups from database servers to an external storage device over a network-attached storage (NAS).
4.1.2.2 socket_udp_rcvbuf_default
Cluster based database technologies are becoming popular. Typically nodes of such database clusters
communicate among themselves using UDP. A large amount of data may get exchanged between server
nodes in a database cluster connected through an interconnect. In this case you may want to consider
increasing the tunable parameter socket_udp_rcvbuf_default which defines the default receive
buffer size for UDP sockets. If the command netstat p udp shows socket overflows, it might be
desirable to increase this tunable parameter. It should be noted that increasing the size of the socket buffer
only helps if the length of the overload condition is short and the burst of traffic is less than the size of the
socket buffer. Increasing the socket buffer size will not help if the overload is sustained.
4.1.2.3 socket_udp_sndbuf_default
As mentioned above, cluster based database technologies may use UDP to communicate between nodes in
the cluster. This tunable parameter sets the default send buffer size for UDP sockets. The default value for
this tunable parameter is 65536, which is optimal for cluster based database technologies used on HP-UX.