On Wed, 26 Jan 2005, Jess Sightler wrote:
> This is all interesting information... and raises some interesting
> questions.... how many VMs are you running on these machines? Is it
> really so many that the 24 megs of overhead results in problems for a 1
> GB machine? That would seem to imply at least 10-20 VMs? Not really
> meaning to fault your reasoning, just curious as this hasn't matched our
We run around 6 - 10, and no it is not a problem (other than startup time)
with 1G. That is why we are ordering new servers with 1G. But the servers
have had lower memory. A typical 70 user system has 256 Meg - which has to run
imap and squid as well. This will have to change, obviously, with Java 2.
I can also reduce the need for restarting the JVM with improved dynamic
loading/unloading features for the applications.
It is not a real problem, just an annoyance. Our users *like* to upgrade -
even though there is no benefit other than reduced maintenance cost on current
hardware. It is annoying because Java 2 is so much less elegant than Java 1.1.
It is turning into a stuffed turkey. It is also annoying because we are a
small company and I personally have to do the upgrade - copying files and
tweaking configurations - a hard to automate but boring job.
> Also, just as an aside, not all JVM libraries are loaded at startup.
That was an exageration :-) However, the degree of coupling between classes
in Java 2 is obscene, and way too many are loaded at startup.
Tellingly, Sun's solution to this is not to fix the APIs (impractical,
now that it is in production all over the place), but to provide
class preload capability to the JVM for that initial hit, and to
support shared class and JIT overhead for multiple JVMs (to help
with the memory consumption problem). No, this solution is not generally
I'm one of those guys who gloss over the CPU benchmarks and look for the
memory use benchmarks - complaining loudly if they are missing.
Embedded products have similar concerns - unless they are getting
close to the CPU capacity of the processor, memory use is the
primary cost factor.
Don't get me wrong. If you are running one or two big long running JVMs with
multiple applications that are dynamically loaded and unloaded, e.g. your
typical web server with EJB, then Java 2 works just fine, and the coupling
and memory overhead problems are not noticeable. And we do run that
kind of application as well on our web servers.
Stuart D. Gathman <stuart@...>
Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flamis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.