my company is hosting JBoss on Windows Servers (2003 (R2), 2008 (R2)) as well as on SuSE SLES 11.
We're still using JBoss 4.2.3 but plan to switch to 7.1 this year.
We've detected a strange download issue with JBoss on (any of our) Windows servers. The download speed of static files (we've tested with a static 200 MB zip file) is much slower than with IIS or with Linux JBoss installations.
While on localhost JBoss and IIS were both able to deliver the file with up to 160 MByte/s (as fast as the disk could), we've detected a bigger difference when we try that e.g. 10 network hops away: There we had the situation that IIS was able to transfer the file with 4 MByte/s while JBoss only could transfer with 1,6MByte/s.
We tried the same thing with a server in the US, which is 14 hops away from us (Germany): IIS transferred with 400KByte/s while JBoss only transferred with 150KByte/s - with Apache in front connected via AJP the download speed increased up to 200KByte/s, but still half as fast as IIS.
I've experimented with several JBoss Connector settings, e.g. maxKeepAliveRequests, keepAliveTimeout, connectionTimeout, acceptCount,
and context.xml settings, cacheMaxSize="204800" cacheTTL="60000"cachingAllowed="true", but it made no difference.
The question is, if this related to a suboptimal connection settings in JBoss or e.g. a bad MTU setting is slowing down the transfers?
The issue is also reproducible with JBoss 7 and JBoss EAP6 on Windows Server 2003 R2 and is related to general TCP flow control issues of Windows Server.
The TCP flow control is slightly improved with Windows Server 2008 / 2008 R2 but still not as optimal as on Linux.
German article on TCP flow control on Windows(fee-based):
My recommendation for internationally used systems is, to host either on Linux directly, or to put a Linux-based reverse proxy (e.g. Apache) in front.
I found out that the main reason is the default network configuration of Windows.
The download performance improves massively after tweaking the network configuration with registry settings, see IBM Websphere article(German):
I've increased also the TCP default receive and send window sizes, see article:
After the tweaking Windows network performance is raised to the niveau of Linux