some comments on Chris's latest work http://www.webperformanceinc.com/library/reports/windows_vs_linux_part1/index.html

Andrew Oliver <[email protected]>
Newsgroups gmane.org.user-groups.trijug.juglist
Message-ID <[email protected]>
Thought I'd just post these to the group since others may have some 
thoughts that I missed....

Some comments (unofficial, my own opinion's only, but I'm not hiding 
affiliations):

see:

1. 
http://www.webperformanceinc.com/library/reports/windows_vs_linux_part1/index.html
2. 
http://www.webperformanceinc.com/library/reports/windows_vs_linux_part2/index.html


Disclaimers:

Chris, quoted comments are here for context "fair use" -- please don't 
sue me :-)

Bias -- I'm a died in the wool UNIX geek.  All my servers are Linux and 
my latop is a powerbook.

"
Server Software

The two OSs utilized during this test were Microsoft Windows Server 2003 
("Windows"), and CentOS 4.2 x86_64 ("Linux"). With Windows installed, it 
was permitted to use Windows Update to install the most recent service 
packs and updates as of November 16, 2005. Our Linux copy was installed 
via CDs burned from the publicly available ISO images. The YUM Updater 
was then allowed to update all installed packages to the latest stable 
versions as of November 15, 2005.
"

I would have liked to have known what kernel that is.  Google wasn't 
very definitive, but I'm going to assume 2.6.9.

Hardware:
"
Processor  	One Intel Xeon 2.8 GHz with HT Technology
Memory 	512 MB
Disk Drive 	One 40 GB SATA disk drive
Ethernet 	One 1 GbE ethernet interface.
"

This is a pretty underpowered system for most enterprises today.  I'm 
also under-enthusiastic about a single processor system test.  The 
reason being is that a big difference that I see between VMs is the 
performance of parallel garbage collection.  Moreover, if the license 
permits it (and it probably doesn't) I'd have enjoyed seeing a JRockit 5 
vs JDK 5 vs JRockit 1.42 vs JDK 1.42 matrix of effect on Linux and 
windows.  I realize it is a tall order.  At JBoss most folks in the know 
preferred JRockit in the 1.42 era, but there is a lot of debate still in 
the JDK 5 era.  The people who do microbenchmarks are generally happier 
with JRockit5 but under memory constraints with low thread contention 
I've had a lot of luck with JDK 5.  It is not yet clear in my mind which 
one to recommend as a rule of thumb beyond motivational analysis: "Intel 
writes JRockit and Sun uses AMD processors in their servers...".  It was 
generally clear in the 1.4.2 days to recommend JRockit except for 
64-bit.  (IBM's JDK has a retro garbage collector that makes it slow).


"
Results

With our servers configured as we have outlined above, we may now 
proceed to examining the results of the test. The servers appeared to 
quickly hit a VM memory restriction. Results upon remedying this error 
should become available in part two of this article. The interesting 
aspect of this test is that we see the servers behave quite differently 
when forced to serve beyond their capacity.
"

Are you sure?  It would be nice to see the gc.log for this test.  Should 
be pretty easy to see.  It would also show us whether the VM elected (or 
you do) to use the parallel collector with hyperthreading.

I'd also like to see a server.xml.  You can set the TCP backlog for the 
connector.  I'm curious if thread contention was also an issue (did you 
up the number of threads and idle threads?).  Not to defend Windows, but 
I'm curious if this is just a default setting difference (lower backlog 
on Windows) or just a "cost of lack of idle threads" type thing. 
Turning away traffic "connection refused" means no thread picked it up 
AND you run over your TCP backlog setting.

"
Servlet Container Preparation

Tomcat was installed following the procedure outlined in the earlier 
edition of the Servlet Report. The only difference made here was to 
increase the JVM memory limits. Since each server was equipped with 512 
MB of RAM, the new memory configuration setting was arbitrarily chosen 
to have a 200 MB initial size, with a maximum of up to 384 MB. Under 
Windows, the settings were entered directly into the configuration 
manager applet installed with Tomcat. Under Linux, the same effect was 
achieved by specifying the JVM parameters in the CATALINA_OPTS variable.
"

I'm not sure this is completely fair.  Oddly equal numbers here may not 
be fair....whoa???  Meaning that I'm not sure the default Perm, tenured 
and eden generation are sized the same between windows and Linux.  This 
may mean that you have "effectively" less memory on one than the other 
or different on one rather than the other.  Again the GC log could help 
us see what happened here.  I'm also curious what would happen if you up 
the ratio for full collections (assuming they are occuring).

-Andy
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.