3 Replies Latest reply: Oct 8, 2012 2:20 PM by GlenH RSS

    Monitor java heep with OEM

    KishoreTummeti
      Hi,

      I have installed OEM on Linux. I want to monitor following JVM related item of remote machine-
      Heap memory     
      GC time     
      Thread monitoring and thread dump
      Java Process CPU Utilization     
      I went through many docs, unfortunately I have not found anything related to these item. Can you please help me out how to monitor these items?

      Regards,
      Kishore Tummeti
        • 1. Re: Monitor java heep with OEM
          GlenH
          Hi Kishore,

          EM does capture the JMX related JVM metrics, which you can take a look at simply by navigating to "Monitoring->JVM Performance" under the WLS target menu. However, I would highly recommend you take advantage of the JVM diagnostics feature which is heavily used for this purpose as it collects very deep JVM thread and heap information and doesn't utilize BCI and thus basically near zero overhead. To get that up and running, you need to enable the JVMD Manager first from the top-most Setup menu under Middleware Diagnostics. That essentially adds another very lightweight managed server to your Cloud Control Domain. As it doesn't take up much memory, most simply run it on the same machine as the OMS but that is up to you. Once deployed, you can then deploy the JVMD agents which are basically just war files. You don't even need to restart your servers. Once the JVMD agent is deployed, it simply starts collecting all of this information. If you are using Oracle databases on the back-end, you can even trace threads all the way to Oracle DB sessions (way beyond just seeing the SQL statement) in the case of threads stuck in a DB Wait state and of course all of this data is captured both in real-time and historical mode.

          Anyways, I would highly recommend going down that path. Hopefully, you are on EM 12c R2 as that has some additional optimizations in it on that front but the previous EM 12c BP1 and RTM releases also have this bi-directional navigation capability between DB sessions and the JVM threads as well. In regards to going through the steps discussed above, there is a Getting Started Guide that walks you through the steps:

          http://docs.oracle.com/cd/E24628_01/install.121/e24215/toc.htm

          In addition, there are two videos that walk you through the JVMD manager and agent steps. If these are vanilla WLS servers as opposed to SOA Suite or WC Suite, you should uncheck the ADP deployment and just deploy JVMD to the targets. ADP provides deep component dependency on SOA, OSB, WC, WLP, ADF, and other FMW and some MVC frameworks like Struts and JSF.

          Video of JVMD Manager Deployment:
          http://www.youtube.com/watch?v=he7C4feUuOc

          Video of JVMD Agent Deployment:
          http://www.youtube.com/watch?v=h0pwl8GfhR8

          Cheers,
          Glen
          • 2. Re: Monitor java heep with OEM
            KishoreTummeti
            Hi Glen,

            Thanks for detail explanation. This is very helpful to me.
            We have installed OMS 11.1.0.1.0 version and upgrade it to 11.1.0.1.5 version. Can I install JVMD? I mean is it supports for OMS 11.1.0.1.5 version.

            Regards,
            Kishore Tummeti
            • 3. Re: Monitor java heep with OEM
              GlenH
              Yes, you can configure and utilize JVM diagnostics within Enterprise Manager 11g. However, it is much more powerful in 12c as the deployment is not only simpler and more efficient, but features such as the bi-directional navigation between a JVM thread and a back-end database session are only available in 12c as well as the Middleware Diagnostics Advisor (MDA) and many of our historical thread and live heap analysis features. I would highly recommend moving to EM 12c R2.

              Cheers,
              Glen