On Aug 18, 2006, at 10:50 AM, Macioce, Larry wrote:

Here are the numbers straight form thehorses mouth:
Mem: 1234464k total, 1224416k used, 10048k free, 2284k buffers Swap: 1048936k total, 939956k used, 108980k free, 268164k cached
The VM lpar if 3g and yes the entire guest apps are in java.
The thing about the free and buffer is that they are dynamic numbers, so
I wouldn't know where to change them.

Well, looking at this, you're hitting swap pretty hard, which is alarming, but you also have 268M of memory that's being used as DASD cache. I think this implies that the memory needed by the app is very spiky: it needs a whole bunch (perhaps reading large files or database tables into memory all at once?), and then gives it back.

So I'd try making the size of the guest 1GB and seeing if that helps. I would also recommend breaking that swap into at least three different tiers at different priorities; maybe 300MB or so of VDISK swap at the highest priority, 400 MB of DASD swap at a lower priority, and 500 MB of DASD swap below that. (Note that your swap will grow to cover the main storage you're taking away).

The *real* problem is probably that your java apps are ill-behaved; if your Java programmers are like the latte-sipping little-black- rectangular-glasses-wearing goatee-stroking^W^W^W^W^Wtypical, you won't have much luck convincing them to write something that doesn't assume it's running in an environment where memory and CPU cycles are free. So I don't think you can do much more than try to tune your way around the symptoms.

If the apps are defensively coded, then you might be able to get somewhere by restricting the Java heap size and thereby forcing the app to *not* slurp entire huge files or tables all at once. OTOH, if they are not well coded, this will just break them, as they will run out of memory when they *try* to slurp in data and hit the wall; in this case, the developer's solution to running out of memory in his app will not have been to restrict the size of the data in core at any one time, but just to raise the heap size until it all fit. Of course, as your data grows, this approach becomes less scalable. And without access to the actual app, this is all guesswork anyway.

So my recommendation would be: make that a 1024MB guess, and tier your swap space, with at least the first 200MB being swap-to-VDISK.

Adam

Reply via email to