JRA recording (JRockit Runtime Analyzer) is one of the best feature that JRockit Mision Control gives us. As the name suggests, it records all the data from current heap usage to garbage collection. All the possible details will be recorded.
To take JRA recording of the server, in the JVM Options add:
-Xmanagement:autodiscovery=true,authenticate=false,ssl=false,port=<port number to use>
default port is 7091
When the server is started, go to the directory D:\BEA_Home\jrockit_Home\bin and start jrmc.exe. You will see the jrmc console running.
Now in the Discovered -> Local tab, you will see that the server is connected to the JRMC tool, right click on the server on which you want to take a JRA recording on and click on “Start JRA Recording”.
In the next screen, in the drop down list check JRA recording normal. Give the location of the directory where you need to save the recording and enter the minutes or seconds of how long do you need the recording.
When you check the Show Advanced Options, it will ask you if you want thread dumps, latency data, heap statistics and CPU statistics. Enable them as per your preference. Enabling the options will give you extra information about the server.
The next screen shows the processing and the details of recording that is being taken.
When the recording is done, it will open the recording taken. Else open the recording by clicking new on the menu bar.
Below is the detailed explanation of the recording:
1– General information (1st screen) : It will give all information about memory allocations for the server, JVM arguments, thread count, exceptions and errors. Most importantly it will give you the complete version of the JDK used and the operating system.
2– Click on Methods. This screen gives you all the information of which methods are using the maximum memory. If there is an application deployed on the server, it will also show the methods being called in the application and the percentage of memory consumed by them. Click on the individual package to get the whole list of methods on the right side.
3– Click on GC General. This will give you all the information about the garbage collection. Like how many times has the gc happened, how many young generation gc and old generation gc, gc pauses etc. It also tells you the reason for gc as seen in the screen shot. This explains that the gc happened to get New Native TLA space.
When you click on the gc strategy changes, on the left side it gives information about which algorithm is used for garbage collection.
4– Click on GCs. The gc chart shows you the complete graph of garbage collection from beginning to end. On the gc chart, click on any point and it will give you the information about type of gc, gc pause, reason for gc etc. The section garbage collection gives you details about young and old objects GCed.
To get more information about the gc, cpu usage etc, click on the drop down list in the gc charts.
Garbage collection section shows the summary of young and old generation gc.
5– Click on Heap. It will show you the commited heap, large objects size, fragmented heap etc at the end of the recording.
6– Go to Objects. It will give you a list of most common objects created and the percentage of heap occupied by each of them. It gives a data of how was the memory situation in the beginning of the recording and at the end of recording. You can see the clear comparison.
7– Latency Recording : If you select Latency recording in advanced options before taking the JRA recording, latency data will be recorded. This is helpful in monitoring performance of the server and check what is hampering the performance.
– Latency Log is the list of events that have caused the latencies.
– Latency Graph : This shows the threads involved when the latency was recorded.
– Latency Traces : These are the stack traces which were involved in causing the latencies. This is helpful in knowing the root cause of performance issues.
8– Click on the Optimization tab. This will give you the data of the number of methods optimized before and after sampling. It will give the complete list of methods. This also shows the number of JIT compilations (byte code to machine language conversion) and also the time taken to do so.
9– Go to the tab Locks: This shows the information about which java locks was the application mostly blocked on. This helps in knowing where to tune your application code for better performance of the server.
If you have any doubts or need any clarifications, please let us know. We will be glad to help you.