> I have enjoyed the responses to these questions I posed
> regarding what is
> a transaction.  So to continue, I was asked, " what are the
> JVMs doing?"

Not the JVMs, what are the *applications* doing? The JVMs respond in a
predictable way; it's the applications that make things messy.

> But then again it is hard to over utilize a SunFire
> 480 with 4+
> GB of Memory.

Not really..8-). I've got a couple apps that you could use those spare
cycles on if you're not using them for anything else...

>  So I guess I can't really answer this
> question, but what I
> can say is our developers need to be more talented when it comes to
> developing reliable java code.  It seems there are many JVMs in our
> environment that will exceed the initial HEAP size of 128 MB, thus at
> ~129, the JVM pulls another 128 MB of memory into its little
> world.  What
> impact if any would this behavior have in an environment
> where you z/VM w/
> 25 guests each running some number of JVMs and most of these
> JVMs start
> grabbing memory?  Will one guests JVM growth impact another system's
> attempt or ability to grab more memory for its JVMs?

There is a physical limit, of course -- the sum of physical memory available
to the VM system plus all the VM paging areas, plus any Linux paging areas
on real DASD.  The behavior you describe will cause the individual virtual
machine working set (the amount of physical memory actually mapped to
virtual pages) to increase, up to the virtual machine size defined in the CP
directory. There must be enough physical memory in the zSeries to accomodate
the sum of all the virtual machiens sharing the physical resources if you
want to avoid paging (not necessarily a bad thing, but you need to plan
ahead for it).

If the JVMs inside a single instance continue to increase demands for
resources, then the Linux system will begin to page. If your Linux paging
areas are defined as CP VDISK, then that does have an impact on VM behavior,
as pages used for VDISK aren't available for use for virtual machines
(although CP does a very good job of shuffling things around, thus my
comment about VM paging not necessarily being a bad thing). Linux paging is
generally not desirable if it's avoidable, but a certain amount is
acceptable.

So, "it depends". If all your JVMs expand at the same time in all your
virtual machines, CP will have to do a lot of work to cope with that, and if
you exhaust all your physical resources, then you could affect the other
instances. On the positive side, you can control that expansion by a
combination of virtual machine size and use of VDISK size limits, and it
"just works", along with having excellent utilization measurements to prove
to the apps people that their code sucks.

The only way you're going to find out if that is a possibility is to look at
application utilization and performance data and see how often your JVMs are
expanding now and what the applications are doing to cause that. You can
then go back to the programmers and apply the appropriate corrective
actions.

-- db

Reply via email to