Clay Webster wrote:

>Jess, 
>
>Were IIS and Tomcat on the same windows hardware as 
>the Apache httpds?  Are you seeing network issues
>(e.g.- rexmits) -- you might have them everywhere, but 
>your Solaris may not be configured well (ndd,MTU,etc).
>  
>
Jason Kissinger ([EMAIL PROTECTED]) responded:

> It isn't network hardware issues (rexmits).  All Windows server tests 
> were against same Windows 2000 server, though it's also been reported 
> against Windows NT.  The Solaris clients are the out-of-the-box 
> settings, with acceptible performance against both IIS (bleh!) and the 
> Tomcat built-in webserver.
>
> We were thinking it was problem with Nagle algorithm not being 
> disabled, but snooping for setsockopt via a strace tool for Windows 
> shows that TCP_NODELAY is being set.  I don't know Windows enough (at 
> all!) to know if this is sufficient, or if a win32 api also needs to 
> be called directly.  It still appears to be deferring ACK even though 
> TCP_NODELAY should be set.  Changing the tcp_deferred_ack_interval on 
> the Solaris client improves performance, but that isn't an acceptable 
> work around, and probably hurts performance for apps that'd prefer to 
> delay ACK, especially in a WAN.  The default on our Solaris boxes seem 
> to be 20.
>
> Another oddity is that when retrieving a resource through Tomcat and 
> mod_jk (possibly mod_jserv also, but haven't verified that), the 
> performance is better, despite the additional hops and overhead of 
> retrieving resource through java process.  I see similar performance 
> for all server OS' with this config.
>
> wget 8mb file from server:
>
> -1.3.x Apache through mod_jk on Windows:
>    o client on Solaris:  1MB/sec
>    o client on Linux: 1MB/sec
> -1.3.x Apache on Windows:
>    o client on Solaris:  80K/sec
>    o client on Linux:  8MB/sec
>
> Our thought is that mod_jk/Tomcat has response buffer larger than TCP 
> floating window, thus the server is never stuck with a partial tcp 
> fragment awaiting an ACK.
>
> Windows clients hitting Solaris servers does not exhibit this problem. 
> Only Solaris clients hitting Windows servers.  I'm unsure if other 
> UN*X have this problem, Linux and Windows does not.  And Solaris 
> client hitting anything but Windows works fine.  We have some HP/UX 
> boxes that I could build wget on to test as clients, if that would be 
> helpful.

In short there really is something screwy with the way Apache on Windows 
interacts with Solaris clients.

--
Jess Holle

--- Begin Message ---
It isn't network hardware issues (rexmits).  All Windows server tests 
were against same Windows 2000 server, though it's also been reported 
against Windows NT.  The Solaris clients are the out-of-the-box 
settings, with acceptible performance against both IIS (bleh!) and the 
Tomcat built-in webserver.

We were thinking it was problem with Nagle algorithm not being disabled, 
but snooping for setsockopt via a strace tool for Windows shows that 
TCP_NODELAY is being set.  I don't know Windows enough (at all!) to know 
if this is sufficient, or if a win32 api also needs to be called 
directly.  It still appears to be deferring ACK even though TCP_NODELAY 
should be set.  Changing the tcp_deferred_ack_interval on the Solaris 
client improves performance, but that isn't an acceptable work around, 
and probably hurts performance for apps that'd prefer to delay ACK, 
especially in a WAN.  The default on our Solaris boxes seem to be 20.

Another oddity is that when retrieving a resource through Tomcat and 
mod_jk (possibly mod_jserv also, but haven't verified that), the 
performance is better, despite the additional hops and overhead of 
retrieving resource through java process.  I see similar performance for 
all server OS' with this config.

wget 8mb file from server:

-1.3.x Apache through mod_jk on Windows:
    o client on Solaris:  1MB/sec
    o client on Linux: 1MB/sec
-1.3.x Apache on Windows:
    o client on Solaris:  80K/sec
    o client on Linux:  8MB/sec

Our thought is that mod_jk/Tomcat has response buffer larger than TCP 
floating window, thus the server is never stuck with a partial tcp 
fragment awaiting an ACK.

Windows clients hitting Solaris servers does not exhibit this problem. 
 Only Solaris clients hitting Windows servers.  I'm unsure if other UN*X 
have this problem, Linux and Windows does not.  And Solaris client 
hitting anything but Windows works fine.  We have some HP/UX boxes that 
I could build wget on to test as clients, if that would be helpful.


Jess M. Holle wrote:

> ????
>
> ------------------------------------------------------------------------
>
> Subject:
> RE: Apache 1.3.x and 2.0.x Performance Issue
> From:
> Clay Webster <[EMAIL PROTECTED]>
> Date:
> Tue, 27 Aug 2002 13:49:15 -0700
> To:
> "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
>
>
>Jess, 
>
>Were IIS and Tomcat on the same windows hardware as 
>the Apache httpds?  Are you seeing network issues
>(e.g.- rexmits) -- you might have them everywhere, but 
>your Solaris may not be configured well (ndd,MTU,etc).
>
>--cw
>
>-----Original Message-----
>From: Jess M. Holle [mailto:[EMAIL PROTECTED]]
>Sent: Tuesday, August 27, 2002 4:30 PM
>To: [EMAIL PROTECTED]
>Subject: Re: Apache 1.3.x and 2.0.x Performance Issue
>
>
>Ian Holsman wrote:
>
>Jess M. Holle wrote: 
>
>Both Apache 1.3.x and 2.0.x suffer a severe perfomance issue when the server is on 
>Windows and the client is Solaris (and perhaps others). 
>
>Before you stop reading this as simply "we know Windows does not perform well", I 
>should point out that this does not occur when the client is Windows or Linux, nor 
>when the server is on the same Windows box but is IIS or Tomcat (standalone)! 
>
>Some rough download speeds: 
>
>    * recent Apache 1.3.x on Windows: 
>          o client on Solaris (8): 80K/sec 
>          o client on Linux or Windows: 8MB/sec 
>    * recent Apache 2.0.x on Windows: 
>          o client on Solaris (8): 120K/sec 
>          o client on Linux or Windows: 8MB/sec 
>    * IIS on Windows 
>          o any client tried: 8-9 MB/sec 
>    * Tomcat (standalone) on Windows 
>          o any client tried: ~8MB/sec 
>
>
>just out of interest does the same thing happen when we have a solaris server and a 
>windows client? 
>I'm not sure.  I've not yet tried that (and actually another engineer ran all these 
>tests).  I also just noticed that I got some numbers slightly wrong:
>
>Apache 2.0.39 on Windows
>  
>client on Solaris (8): 649 K/s 
>client on Linux: 9.1 MB/s
>
>[I've appended this amended info to the bug report.]
>
>--
>Jess Holle
>
>  
>




--- End Message ---

Reply via email to