2 Replies Latest reply on Jun 12, 2014 12:36 PM by handat

    Desired heap size arguments for OIM - Production

    986986

      Hi,

       

      We have OIM running in 2 nodes in cluster in production in windows. We configured heap size as -Xms4096m -Xmx6114m

       

      But one of the node is not responding every 2 days and we have  and logs says OutOfMemory errors.

       

      We have around 100 users getting created/modified and also more number of password resets happen in a day.

      Question is : What we should specify for min and max heap size for OIM in prod env?

       

      Changing the heap size to -Xms4096m -Xmx4096m will resolve the issue?

       

       

      Out of memory exception:

       

       

      <Jun 5, 2014 10:08:17 AM MST> <Error> <Kernel> <BEA-000802> <ExecuteRequest failed

      java.lang.OutOfMemoryError: classblock allocation, 83749816 loaded, 69376K footprint, in check_alloc (src/jvm/model/classload/classalloc.c:215).

       

       

      Attempting to allocate 6114M bytes

       

       

      There is insufficient native memory for the Java

      Runtime Environment to continue.

       

       

      Possible reasons:

      The system is out of physical RAM or swap space

      In 32 bit mode, the process size limit was hit

       

       

      Possible solutions:

      Reduce memory load on the system

      Increase physical memory or swap space

      Check if swap backing store is full

      Use 64 bit Java on a 64 bit OS

      Decrease Java heap size (-Xmx/-Xms)

      Decrease number of Java threads

      Decrease Java thread stack sizes (-Xss)

      Disable compressed references (-XXcompressedRefs=false)

      .

      java.lang.OutOfMemoryError: classblock allocation, 83749816 loaded, 69376K footprint, in check_alloc (src/jvm/model/classload/classalloc.c:215).

       

       

      Attempting to allocate 6114M bytes

       

       

      There is insufficient native memory for the Java

      Runtime Environment to continue.

       

       

      Possible reasons:

      The system is out of physical RAM or swap space

      In 32 bit mode, the process size limit was hit

       

       

      Possible solutions:

      Reduce memory load on the system

      Increase physical memory or swap space

      Check if swap backing store is full

      Use 64 bit Java on a 64 bit OS

      Decrease Java heap size (-Xmx/-Xms)

      Decrease number of Java threads

      Decrease Java thread stack sizes (-Xss)

      Disable compressed references (-XXcompressedRefs=false)

       

       

      at java.lang.ClassLoader.defineClass1(Native Method)

      at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)

      at java.lang.ClassLoader.defineClass(ClassLoader.java:615)

      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)

      at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)

      Truncated. see log file for complete stacktrace

      >

        • 1. Re: Desired heap size arguments for OIM - Production
          986986

          OIM is installed in windows 2008 server and it has 32GB RAM allocated.

          Java is JRockit R28.2

          • 2. Re: Desired heap size arguments for OIM - Production
            handat

            Why are you only allocating 6GB when you have 32GB available? Assuming your greedy OS will only need 2GB and you have SOA and OIM instances running on the same server, meaning you could divide up the remaining memory between the two. However, overallocating memory to the JVM can slow it down, so don't over do it, but know at least that you could go much higher if needed to. Probably start with 8GB each. Ideally, you would enable a profiler and monitor the heap usage and then pick a garbage collection option which suits your load and usage profile. However, the error message you are getting suggest that you actually have less than 6GB available to the JVM, so are there other programs running on the same server that have 'stolen' the memory, ie, it got swapped out and and given to other apps which never gave it back?