Highlighted
Visitor.
666 views

Perfmon counters needs to capture memory issue in java application hosted on Windows server

Jump to solution
Question 1: which all counters should i capture to understand the memory consumption issue occurred in Java application which is hosted on Windows server.

Question 2 : which tool should i use to find out the root cause of memory issue
0 Likes
1 Solution

Accepted Solutions
Highlighted
Acclaimed Contributor.
Acclaimed Contributor.

A JVM does not expose internal memory metrics to performance counters. The only option you have is to monitor the memory counters per process (and take the JVM process(es)). Look to private bytes and virtual bytes (e.g. thread stack is only counted as virtual memory).

Java maintains it own memory and it is a good habit to set its max memory according your needs. When in a JVM memory presure occures you will notice high CPU due to garbage collection and longer response times.

The most simple way to start is to hook up an tool like jvisualvm with Visual GC Plugin or java flightrecorder (mission control); you can also take heap dumps and analyse those snapshots over time.

If you have little to no experience with JVM memory analysis: start googling and read blog posts. It is a world on its own and I guess has its own forums. You might expect that experienced Java developers know how to tackle, but my experience is that most java developers have no experience with memory analysis.

Signature:
Reward community members who take time to respond and help.

View solution in original post

1 Reply
Highlighted
Acclaimed Contributor.
Acclaimed Contributor.

A JVM does not expose internal memory metrics to performance counters. The only option you have is to monitor the memory counters per process (and take the JVM process(es)). Look to private bytes and virtual bytes (e.g. thread stack is only counted as virtual memory).

Java maintains it own memory and it is a good habit to set its max memory according your needs. When in a JVM memory presure occures you will notice high CPU due to garbage collection and longer response times.

The most simple way to start is to hook up an tool like jvisualvm with Visual GC Plugin or java flightrecorder (mission control); you can also take heap dumps and analyse those snapshots over time.

If you have little to no experience with JVM memory analysis: start googling and read blog posts. It is a world on its own and I guess has its own forums. You might expect that experienced Java developers know how to tackle, but my experience is that most java developers have no experience with memory analysis.

Signature:
Reward community members who take time to respond and help.

View solution in original post

The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.