Understanding JRockit Runtime Analyzer (JRA) Recordings

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.

Best Regards.

9 comments

  1. Hello Middleware Masters,
    I was trying to understand the concept of JMS and its working in weblogic. Can you please guide me with proper material or a link where i can understand and follow the correct process. Thanks in advance.

    Regards
    Rahul

  2. Hi Gurus
    Do you know of any other tool which can analyze the Jrockit JVM verbose GC logs. I am not looking for Runtime tools. As I think runtime tool will consume some resource.
    Please let me know if you know of anytool like that. I knwo IBM has one, which creates funky graphs. But that works only for IBM jdk.

    Thanks in Advance!!!

    1. Hi Pradeep,

      I am not sure what you require. The JRA tool collects the runtime information for you to analyse later. It is the same as adding verbose gc in the JVM parameters, only that JRA gives much more information than the gc logs. If you do not want resource consumption and only want to analyse the gc logs, you can check the normal gc logs created by the server. I am not aware of any other tool for JRockit right now, but even if it is there, it will use up resources to collect the gc information. Can you share which IBM tool are you referring to?

      Best Regards,
      Divya

  3. I started the JRockit Mission Control as per your instructions. I am able to get the console and all of the process under Discovered–>Local. Then I right clicked on a process, click on Start JRA Recording and give the recording time and local filename. But when I am hitting “START”.
    It says ” A license for JRA could not be found on the JRokcit at weblogic.Server weblogic.Server(20753)”

    Where 20753 is PID.
    Could you please help me out.

Leave a Reply