{ On Wed, 2003-06-25 at 08:15, Damien Lecan wrote:
{ > Hello,
{ > 
{ > I am trying to get better performances from a linux plateforme and I am 
{ > a little bit disappointed.
{ > 
{ > I am testing a full J2EE application, ie 3 physical layers 
{ > (apache/tomcat <=> jboss <=> oracle db ; 3 servers), and this is very 
{ > slow on linux ... compared to the same plateforme on Windows 2000 server 
{ > (except for the db, this a HP server for both tests).
{ > 
{ > Every servers are equiped with JVM SUN 1.4.1_01 and Linux is RedHat 7.3, 
{ > not customized.
{ > 
{ > I know I could try other VM, but I am wondering if the problem comes 
{ > from the OS or from the VM (on windows, performances are twice better), 
{ > or from both ?
{ > 
{ > What should I modify on my redhat ? Should I use IBM ou Blackdown VM ?
{ > 
{ > Thanks for your help, I really would like to use linux instead of 
{ > windows for servers ...

Hi Damien,

Since I've made some comparison between different JVMs and different
machines and O.S., I may provide you with some figures.


First, check that your machines are EXACTLY identical. A bigger
cache leads to much better performances (32K -> 512K cache : ~ +30% perf)
with Java benchmarks.


I've used the following benchmarks:
        VolanoMark    http://www.volano.com/report/index.html
                ~ 800 threads
        SPECjbb2000   http://www.spec.org/osg/jbb2000/
                Very few threads but heavy Java work


On a 2xPentiumIII (1.3 GHz with 512 KB of cache), with RedHat 7.3 :
VolanoMark :
  - BEA JRockit 8.1 is ~10Km/s
  - Sun 1.4.2 beta  is ~17Km/s
  - IBM 1.4.0       is ~21Km/s
SPECjbb2000:
  - BEA JRockit 8.1  :  hang
  - Sun 1.4.2 beta  is ~20Kops/s
  - IBM 1.4.0       is ~22Kops/s

So, since your application should be a mix of many threads and heavy
Java run, you should try IBM JVM (1.4.1 is now available).

That also means: the less threads your JVM is running, the better should
be the performances. How many threads are you running ?

This was done with a Linux kernel 2.4.18 SMP .
Kernel 2.6 should provide better results and you should experiment with it.

Take care that JVM results with mono-CPU linux are often different
from results with multi-CPU. Mainly for BEA JRockit (thinthreads).

I haven't experimented with BlackDown, but -based on Volano Report- it
should not be as good as Sun and IBM JVMs.


When running Sun JVM, the following options led to best results with
VolanoMark :
        -server -Xbatch -XXAgressiveHeap
        
With IBM JVM, no options gave the best results.


NPTL does NOT provide better performances for Java. It only (but
that's VERY valuable) provides MUCH BETTER reliability.
Linux 2.4 is far from being an industrial O.S. for heavy load.
Waiting for 2.6 to see how much progress has been done.


When comparing Linux and AIX on the same hardware (4xPPC, same IBM JVM 1.3.1) :
VolanoMark :
  - Linux kernel 2.4  is ~17K
  - AIX 5L            is ~30K
  
That means that Linux 2.4 is far to be as optimized for heavy multi-threading
as old Unix O.S. (like AIX, HP-UX, Solaris) are. I think Windows also
is more optimized than Linux 2.4 .
That may explain (some part of) the difference you saw between Linux and Windows.


Other figures from official SPECjbb2000 results show that Linux SMP on IA32
is much less scalable (88 %) than AIX/PPC (100%) or other O.S. (2xCPU -> 4xCPU).


You should also experiment with JOnAS (ObjectWeb, OpenSource) instead of JBoss.


Regards,

Tony Reix


----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to