Re: How to get better performances from a linux plateforme ?

2003-06-26 Thread Tony Reix
{ 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:
VolanoMarkhttp://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 5Lis ~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]



Re: How to get better performances from a linux plateforme ?

2003-06-26 Thread Christopher Smith
On Thu, 2003-06-26 at 09:35, Calvin Austin wrote:
> > 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.
> 
> Ok so where is your benchmark for NPTL? How can we trust you? Why all the info about
> AIX, that can't even  run on the same machine as windows 2000 or linux x86?
> 
> For the record I showed a NPTL benchmark at Javaone which showed improved
> performance and
> scalability. And this is only the first cut at NPTL on Redhat 9
> 
> The benchmark had 191% speed on a dual machine between running 1.4.1 and 1.4.2 with
> NPTL
> on the exact same machine. It was a heavy threaded chat server

I would second this with my own experiences with C++, as well as some of the
benchmarks used to demonstrated the goodness of NPTL by the NPTL developers.

Sure, for code that doesn't spawn many threads, and doesn't synchronize
very much, the benefit of NPTL is more in terms of the better POSIX
compliance (which in many ways translates to better stability since
POSIX semantics are more likely to be well understood by programmers).
However, for code who's primary bottlnecks were in Linux's thread
library, you will definitely see huge performance wins.

--Chris


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