Tuning TCP/IP

  • From: "Charles Schultz" <sacrophyte@xxxxxxxxx>
  • To: oracle-l <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 14 Sep 2007 15:01:32 -0500

I have a document from Sun that references some tcp/ip parameters that could
be tweaked for better network performance, but has a very obvious caveat:
"*oracle is very sensitive to round-trip performance, and setting
tcp_xmit_hiwat (and tcp_recv_hiwat) to a value much higher than the default
causes much longer waiting time.*"

The parameters in question are:

/usr/sbin/ndd -set /dev/tcp tcp_tstamp_if_wscale 1

/usr/sbin/ndd -set /dev/tcp tcp_sack_permitted 2

/usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 16777216

/usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 16777216

/usr/sbin/ndd -set /dev/tcp tcp_cwnd_max 16777216

/usr/sbin/ndd -set /dev/tcp tcp_max_buf 16777216


I did some looking around on google, but the only thing I could find
documented were some suggestions. For example, it is recommend that
tcp_xmit_hiwat be maxed at 32k for 9i and 64k for 10g. But why? In what ways
is Oracle "very sensitive to round-trip performance", and why would these
parameters increase wait time? In talking with my local sysadmin, we have
come to the conclusion that any outgoing tcp/ip packets that hit a device
with a lower hiwat (High Watermark) will have be re-chunked into the lower
number, which may cause some overhead. I am hoping that others out there
smarter than I might be able to affirm or contradict that hypothesis.

Obviously, we are going to test these parameters. We have already done some
simple OS testing and found very favorable performance increases. In testing
an Oracle communication, would kind of wait event would I look for? SQL*Net
message to and from client?

PS - Obviously, this is a Sun document and they cannot speak for Oracle. I
am taking their statement with a little bit of salt. =)

-- 
Charles Schultz

Other related posts: