Published at DZone with permission of Pierre - Hugues Charbonneau, author and DZone MVB. (source)
article will provide you with a quick reference guide on how to calculate the
Java process size memory footprint for Java VM processes running on IBM AIX
Why is this knowledge important?
From my perspective, basic knowledge on how the OS is managing the
memory allocation of your JVM processes is very important. We often overlook
this monitoring aspect and only focus on the Java heap itself.
From my experience, most Java memory related problems are observed from
the Java heap itself such as garbage collection problems, leaks etc. However, I’m
confident that you will face situations in the future involving native memory
problems or OS memory challenges. Proper knowledge of your OS and virtual
management is crucial for proper root causes analysis, recommendations
AIX memory vs. pages
As you may
have seen from my earlier post
, the AIX Virtual Memory Manager
responsible to manage memory requests from the system and its applications.
physical memory is converted and partitioned in units called pages;
allocated either in physical RAM or stored on disk until it is needed. Each
page can have a size of 4 KB (small page), 64 KB (medium page) or 16 MB (large
page). Typically for a 64-bit Java process you will see a mix of all of the
What about the topas command?
typical reflex when supporting applications on AIX is to run the topas command, similar
to Solaris top. Find
below an example of output from AIX 5.3:
see, the topas command is not very helpful to get a clear view on the
utilization since it is not providing the breakdown view that we need
analysis. It is still useful to get a rough idea of the paging space
utilization which can give you a quick idea of your top "paging space"
consumer processes. Same can be achieved via the ps aux command.
AIX OS command to the rescue:
The AIX svmon command
is by far my preferred command to deep dive into the Java process memory
utilization. This is a very powerful command, similar to Solaris pmap
allows you to monitor the current memory “pages” allocation along with each
segment e.g. Java Heap vs. native heap segments. Analyzing the svmon output
will allow you to calculate the memory footprint for each page type (4 KB, 64
KB, and 16 MB).
below a real example which will allow you to understand how the calculation is
JVM with -Xms2048m & -Xmx2048m (2 GB Java Heap)
# Command: svmon –P <Java PID>
As you can
see, the total footprint of our Java process size was found at 2.2 GB which is
aligned with current Java heap settings. You should be able to easily perform
the same memory footprint analysis from your AIX environment
this article has helped you to understand how to calculate the Java process
size on AIX OS. Please feel free to post any comment or question.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)