Caldarale, Charles R wrote:
[...]

Thanks for the many comments.


After this processing, the process in a "top" display shows
the following :
22175 star      21   0  266m  23m  11m S  1.0  4.6   0:14.61 java
(where 266m is the virtual memory, and 11m the resident one).

The top virtual number is just what's in the memory map for the process, so 
that includes files, code, non-Java stuff, etc., as well as the JVM heap.  The 
resident memory number is the pages that happen to be in RAM at the moment.

Compared to the numbers I see in the jconsole VM summary below,
these memory figures seem to show a gross disproportion, or am I
interpreting this wrong ?

What I meant above was the apparent disproportion between the "266M" number and what (I think) I see really used by the application according to jconsole. But from you comment above, I gather that I was wrongly fixated on that number (266M) and that it does not really represent any real memory used in any permanent way by the process. What really matters is the "Resident" part of it (23M), as compared to how much physical RAM the system really has, right ?


Snapshot 1
Current heap size:
   785 kbytes

This is just the combined virtual size of the new and old generations; it does 
not include PermGen.

Maximum heap size:
65.088 kbytes

How big the new + old can get, if needed.

And can be controlled by the -Xmx<size> switch, yes ?


Committed memory:
1.984 kbytes

Includes the JIT's code pool, C heap, Java heap, PermGen, and various other 
bits and pieces the JVM knows about.

Committed virtual memory:
270.980 kbytes
Total physical memory:
  516.920 kbytes
Free physical memory:
    6.852 kbytes
Total swap space:
1.297.564 kbytes
Free swap space:
1.234.376 kbytes

All of the above are for the entire system, not just this one process.

Understood.

Snapshot 2
Current heap size:
 1.828 kbytes

The heap has expanded a bit.

Maximum heap size:
65.088 kbytes

This can't change.

Committed memory:
2.452 kbytes

Increased due to heap expansion plus probable enlarging of the code pool, C 
heap, PermGen, etc.

Nothing unexpected here.


Ok.
Now a final question on this app :
By running the requests that lead to the snapshot 2 above, I believe I have pretty much "stressed" that app as much as I can (they were relatively "heavy" requests, involving a fair amount of XML parsing).

After watching jconsole for a while, I noted that the total heap space used always remained below 8 Mb, and the non-heap space remained below 9 Mb at all times. So, I have incrementally brought down the value of some switches, to this level :
-server -Xms16M -Xmx32M -Xmaxjitcodesize16M
without apparently having any effect on the application's ability to process requests. My idea in doing this was to reduce the amount of system memory this application maybe reserves for no benefit, and thus leave more real RAM for others.

Considering the numbers above, in your opinion is there anything I could/should still try, while still leaving a margin for the application to support maybe a higher level of requests ?

I am not looking for definite answers here, just trying to get a feel for the stuff, what is important or not. Like for instance if you told me to never touch this -Xmaxjitcodesize, that it doesn't bring anything and could crash the application and cause all my hair to fall off, or anything along those lines.

The point is, after that I'm going to go through the same kind of exercise with Tomcat, and I want a feel for what I should or should not play with.


Thanks

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to