Thanks for the link.

I have dusted off my old test code and checked it into CVS under
samples/stringarray.  The code itself is nothing out of the ordinary.  It
was my intention to use this code to test the affect of tcpNoDelay,
outputBufferSize and XML DocumentBuilder v. Transform.  To my great
surprise, I am seeing *no* difference in performance related to different
settings for tcpNoDelay and outputBufferSize.  I have following this up by
using tcpdump to capture network traffic, and I am seeing no Nagle-related
delays, apparently because the server is not doing a 200 ms delayed ACK.

I started testing with the following configuration:

* SOAP always built from current sources
* 100 Mbps switched network

Client 1
--------
Windows 2000 SP1
AMD K6-III 450 MHz
256 MB PC100 SDRAM
Sun JVM 1.3.1-b24

Server 1
--------
Red Hat 7.3
AMD Athlon 1.2 GHz
256 MB PC2100 DDR
IBM JVM 1.3.1 classic
Tomcat 4.0.3

I repeated the tests with the following client #2 to server #1, then client
#2 to server #2

Client 2
--------
Windows 98 SE w/DUN 1.4
Intel Celeron 366 MHz
192 MB SODIMM
Sun JVM 1.3.1-b24

Server 2
--------
Windows NT 4 SP 6
AMD K6-III 450 MHz
256 MB PC100 SDRAM
Sun JVM 1.2.2_006 symcjit
Tomcat 4.0.1

In all cases, client performance (average RPC roundtrip time) shows no
significant difference between when Nagle is enabled and when it is
disabled.

I have not looked at any dumps with the NT server (no easy way for me to
capture the packets on my switched network), but here is a synopsis of an
RPC with Nagle enabled on the client when hitting the Linux-based server.

time at server
16:59:56.283386    SYN received
16:59:56.283461    ACK sent
16:59:56.283797    ACK received
16:59:56.302040    HTTP header received
16:59:56.302072    ACK sent
16:59:56.303047    payload received
16:59:56.303099    ACK sent
16:59:56.305286    HTTP header sent
16:59:56.305312    payload sent
16:59:56.305571    FIN sent
16:59:56.306480    ACK received
16:59:56.330867    FIN received
16:59:56.330892    ACK sent

As you can see, there is no delayed ACK on the server (unless 32
microseconds counts as a delay), so the payload is received about 1 ms after
the HTTP header.

I will continue testing and analyzing other configurations, but I wanted to
let other know the behavior I am seeing.  If anyone else can run similar
tests, that would be great.

Scott Nichol

----- Original Message -----
From: "WJCarpenter" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, July 26, 2002 3:33 PM
Subject: Re: setTcpNoDelay; why not true by default?


> There is a pretty good discussion of this stuff, specifically regarding
> Apache SOAP, in the paper "Latency Performance of SOAP Implementations".
> Here's the URL:  <www.caip.rutgers.edu/TASSL/Papers/p2p-p2pws02-soap.pdf>
>
> They do a much nicer job than I can of describing the interaction of Nagle
> and TCP delayed ACK.
> --
> [EMAIL PROTECTED] (WJCarpenter)    PGP 0x91865119
> 38 95 1B 69 C9 C6 3D 25    73 46 32 04 69 D6 ED F3
>
>
>
>
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to