>
.set rant on
And for vendors of those products that use and UNcertain amount of
storage, tell us how to estimate it!  Far too many products just say
"Run with REGION=0M" - far more than those that change the limits.
I don't expect those vendors to know how much storage their 
products need in my environment, but I expect them to be able to 
tell me how to figure it out based on some set of metric
>

I am looking at updating z/OS section of the Java Diagnostics Guide to 
include this sort of information. As an ex-customer of IBM I found that 
storage estimates were either too complex ("how many of control block xyz 
will you use? - how do I know!") or almost non-existent. So I am saying 
here the sort of things that I would put in the manual.

The amount of storage used by the JVM is a factor of:

1. Maximum heap size -Xmx + % depending on options and release
2. JVM System Heap, subject to an initial and a variable number of 
secondary allocations (sizes documented)
3. Variable based on JIT and JVM dynamic requirements (may be a lot)
4. LE managed storage to handle threads and other internal LE activities 
(subject to customer LE options)
5. CICS Classcache (Java 142) which covers (2) and part of (3) or Shared 
Class Cache (Java 5 and 6)

The problem is the variability of (2) through (4) which cannot be 
calculated due to its complexity. Also there is the ever present issue of 
defects which cause some memory leaks.

The only way to see what is being used is to either look at control blocks 
(e.g. a dump and VERBX VSMDATA) or to use LE RPTSTG(ON), both of which 
would be documented. Having code in the JVM to hack around someone else's 
control blocks to get accurate data is not a good idea due to pointers 
being updated whilst the code is in-flight, and quiescing all Address 
Space activity (multiple JVMs, CICS being active etc.) may not be possible 
or even desirable. 

The JVM (almost) exclusively uses LE for memory management, and each JVM's 
memory usage is normally accounted for by one TCB and the memory assigned 
to subpools 1, 2 and possibly 129 (MMAP). Although some products may use 
subpool 1 outside of LE control (e.g. CTG).  The JVM usage outside LE is 
negligible.

I am not sure why customers would want to run Java without REGION=0M, as 
without it , it is possible to cause a JVM abend. 

I am sure that there is enough here to provoke further discussion. So 
"light the blue touch paper and retire 10 metres" (was going to say yards, 
but that is probably un-PC now in this country - bless it).

------------------------------------------------------------------------------------------------------------------
Mike Poil
Java z/OS Level 3 Service
IBM United Kingdom Limited, Hursley Park, Winchester SO21 2JN
Internal: 246824  External: +44 (0)1962 816824 
Java debugging: http://www.ibm.com/developerworks/java/jdk/diagnosis/
------------------------------------------------------------------------------------------------------------------






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU






----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to