[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Blackdown JVM?
On Fri, 18 Apr 2003 19:21:12 -0400, Michael Fortin was overheard saying:
| I am curious to to know if anyone has had production experience with
| the Blackdown JVM ( http://www.blackdown.org ). It's been around a
| while but I haven't seem any press on it one way or the other. How
| does it compare to Sun's and/or IBM's JVM?
Michael,
Actually, the Sun Linux JVM is based on the Blackdown efforts from
several years ago. They have since done Linux development in-house
(or at least officially contracted, unlike Blackdown's volunteer
efforts) while the Blackdown folks have continued to produce their own
ports (most recently producing 1.4.1_01 ports compiled with GCC 2.95
or GCC 3.2 for i386 and Sparc Linux).
I haven't found many differences between the Blackdown and the Sun
JVM's, however it has been some time since I have seriously compared
the two. However, the IBM JVM is noticably faster in many situations
than both the stock or tuned Sun JVM.
Just as one example, during a recent load test I was conducting on
Lucene for a system we are developing, we pushed Sun's JVM to the
limits with only about 30-50 clients pounding a Lucene-powered
document search. The IBM JVM remained responsive to slightly fewer
than 1000 clients on identical hardware, all we did was switch out the
JVM and restart Tomcat (4.1.x). We saw similar speedups when we
started to run Weblogic on the IBM JVMs--redeploys of new apps dropped
from > 30s to < 5s on identical hardware. I have not done a lot of
load testing on our app servers, as we tend to exhaust CPU resources
with our application logic before we hit JVM limitations, but I would
venture to guess that IBM's JVM would again outperform the Sun VM
(thanks to JIT and other enhancements IBM has made).
Our results are in no way scientific, and really only speak to the
suitability of IBM's JVM for our specific purposes, not in general,
but I think it would be worthwhile to do a similar comparison with
your application and report back with your findings.
On a somewhat related topic, since JVMs tend to use a large number of
threads, you may find some help by switching out your threading
library to one of the newer LinuxThreads replacements aimed at
delivering more efficient threading support.
IBM has implemented M:N threading for Linux 2.4 in a project called
NGPT, which supposedly can deliver increased performance under high
load on SMP systems--something that most app servers can take
advantage of. Solaris has used an M:N threading model in the past,
but as of 9.0 has reverted to a 1:1 threading model (like that found
in Redhat's NPTL project). I would be very interested in seeing a
Sun/NPTL vs IBM/NGPT JVM shootout if someone had the time to run some
serious numbers and see which threading model really delivers the most
bang for the buck on app server hardware.
For those interested in trying NPTL, RedHat 9.0 comes with NPTL by
default, and may provide some interesting points of comparison to
older RedHat releases that used the older LinuxThreads. Linux 2.5/2.6
will use an adaptation of NPTL for all of its threading operations.
(As a side note, the last time I was using NGPT on a lab box Sun's JVM
would core (even on 'java -version'), but IBM's latest 1.4.0 series
had no problems using the updated thread library).
Here is a useful article that talks about the original scandal over
the Blackdown/Sun JVMs when Sun originally released a Linux VM and did
not give a nod to the Blackdown folks, who had done most of their
dirty work.
http://www.computerworld.com/news/1999/story/0,11280,29614,00.html
-R
--
Robert Gash, gashalot@gashalot.com
(Web) http://gashalot.com/
(PGP) http://gashalot.com/pgpkeys.txt