RE: Setting SDU and tcp.nodelay

  • From: "Cary Millsap" <cary.millsap@xxxxxxxxxx>
  • To: <gxallen@xxxxxxxxx>, "ORACLE-L" <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 28 Sep 2006 08:10:13 -0500


Cary Millsap
Hotsos Enterprises, Ltd.
Nullius in verba
Hotsos Symposium 2007 / March 4-8 / Dallas
Visit for curriculum and schedule details...

-----Original Message-----
From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Grant Allen
Sent: Wednesday, September 27, 2006 7:05 PM
Subject: Re: Setting SDU and tcp.nodelay

On 9/28/06, J. Dex <cemail_219@xxxxxxxxxxx> wrote:
> I want to try setting SDU for a 9207 database to see if it helps
> issues that we are having since moving a database to another location
over a
> longer WAN (we have already eliminated other possible solutions).  I
> read a couple of documents on Metalink but I am still not sure how to
> what to set SDU too?   One doc said to set the SDU size as a multiple
of the
> MSS but I am not sure how to tell what the Maximum Segment Size is.
> doc indicated that if the default is 2K, to double that and set it to
> bytes.  Has anyone else had to do this?  Any suggestions?
> Also, are there any negative ramifications of having both tcp.nodelay
> SDU set?

Usually utterly pointless doing both.  Tweaking SDU/TDU attempts to
have the highest possible payload per transport frame on the network
(e.g. as close as possible to 1514 bytes for an ethernet frame,
assuming jumbo frames aren't in use, allowing for overhead, etc.).

Setting tcp.nodelay disables the Nagle algorithm in the tcp stack that
tries to efficiently balance the data load of a packet with the delay
in dispatching it.  Effectively, you're saying "to hell with
optimising the data payload ... send those babies now!".  The complete
antithesis of what the SDU/TDU settings are trying to do for you.
You'll end up with a larger number of smaller packets on your WAN, and
if it's latency that's your problem, this will make matters worse, not

My advice would be to go back to the workload the application is
generating, and ask some difficult questions about why it's doing what
it does ... e.g. can the queries, etc., be performed in fewer, more
tailored statements, requiring less traffic.

Just my 2c



Other related posts: