2 Replies Latest reply on May 11, 2016 11:18 AM by Mynhardt-Oracle

    Java 1.8.0_92 Solaris Sparc - memory keeps growing (Not on Linux)

    Mynhardt-Oracle

      Hi,

       

      We are struggling with a Java application (Dipforge-4.0.rc5 CoadunationBase-4.0.rc5.jar) running on JDK 1.8.0_92.

       

      The issue is that the above application is running different (Stable and Faster) on Intel - Linux Ubuntu-64bit (8CPUs 64Gb Memory), than it is running on a Supercluster T5-8 - Solaris 11.1 64bit (32 vCPUs 512 Gb Memory).

      The application is a triple store database getting data from a mainframe and user sessions requesting data.

       

      Problem description from the customer:

      ** Start **

      This is a rather complex problem. It is not a Dipforge issue or a Java problem. It is caused by a operating system feature called a mapped memory file https://en.wikipedia.org/wiki/Memory-mapped_file. When requested by an application; be it written in C++, C, python, Java for a piece of memory, in which to cache a files contents, the operating system responds by providing the application with a section of memory, if it is available. If there is no free memory available it will be up to the application to re-use what the operating system has already granted it. The mapped files are managed by the operating system and not the process and are generally used as cache for on disk files, as is the case here.

      ** End **

       

      The major issue is that the application running on Solaris keeps on consuming memory. On Linux the memory use is 48Gb and Solaris Sparc 70Gb and growing.

       

      Questions :

      1. Why is the memory growing in Solaris Sparc and not on Linux for the same JDK 1.8.0_92?

      2. The performance on Linux is better as on Solaris Sparc - why?

       

      Can you please advise how we go about to troubleshot this issue?

       

      Regards

      Mynhardt

        • 1. Re: Java 1.8.0_92 Solaris Sparc - memory keeps growing (Not on Linux)
          Mynhardt-Oracle

          On Solaris Sparc

          spsm-int-dataproc-prd01:/opt/jdk1.8.0_92/bin# ./jmap -heap 2078

          Attaching to process ID 2078, please wait...

          Debugger attached successfully.

          Server compiler detected.

          JVM version is 25.92-b14

           

          using parallel threads in the new generation.

          using thread-local object allocation.

          Concurrent Mark-Sweep GC

           

          Heap Configuration:

             MinHeapFreeRatio         = 40

             MaxHeapFreeRatio         = 70

             MaxHeapSize              = 34359738368 (32768.0MB)

             NewSize                  = 17179869184 (16384.0MB)

             MaxNewSize               = 17179869184 (16384.0MB)

             OldSize                  = 17179869184 (16384.0MB)

             NewRatio                 = 2

             SurvivorRatio            = 8

             MetaspaceSize            = 21807104 (20.796875MB)

             CompressedClassSpaceSize = 1073741824 (1024.0MB)

             MaxMetaspaceSize         = 17592186044415 MB

             G1HeapRegionSize         = 0 (0.0MB)

           

          Heap Usage:

          New Generation (Eden + 1 Survivor Space):

             capacity = 15461908480 (14745.625MB)

             used     = 11247300000 (10726.261138916016MB)

             free     = 4214608480 (4019.3638610839844MB)

             72.7419905152614% used

          Eden Space:

             capacity = 13743947776 (13107.25MB)

             used     = 10936006256 (10429.388290405273MB)

             free     = 2807941520 (2677.8617095947266MB)

             79.5696144531101% used

          From Space:

             capacity = 1717960704 (1638.375MB)

             used     = 311293744 (296.8728485107422MB)

             free     = 1406666960 (1341.5021514892578MB)

             18.11995718384022% used

          To Space:

             capacity = 1717960704 (1638.375MB)

             used     = 0 (0.0MB)

             free     = 1717960704 (1638.375MB)

             0.0% used

          concurrent mark-sweep generation:

             capacity = 17179869184 (16384.0MB)

             used     = 3813856184 (3637.176689147949MB)

             free     = 13366013000 (12746.82331085205MB)

             22.199564753100276% used

           

          46581 interned Strings occupying 5829744 bytes.

          • 2. Re: Java 1.8.0_92 Solaris Sparc - memory keeps growing (Not on Linux)
            Mynhardt-Oracle

            On Linux

            dipforge-production-1:/usr/lib/jvm/java-8-oracle/bin$ ./jmap -heap 24549

            Attaching to process ID 24549, please wait...

            Debugger attached successfully.

            Server compiler detected.

            JVM version is 25.91-b14

             

            using thread-local object allocation.

            Parallel GC with 8 thread(s)

             

            Heap Configuration:

               MinHeapFreeRatio         = 0

               MaxHeapFreeRatio         = 100

               MaxHeapSize              = 34359738368 (32768.0MB)

               NewSize                  = 17179869184 (16384.0MB)

               MaxNewSize               = 17179869184 (16384.0MB)

               OldSize                  = 17179869184 (16384.0MB)

               NewRatio                 = 2

               SurvivorRatio            = 8

               MetaspaceSize            = 21807104 (20.796875MB)

               CompressedClassSpaceSize = 1073741824 (1024.0MB)

               MaxMetaspaceSize         = 17592186044415 MB

               G1HeapRegionSize         = 0 (0.0MB)

             

            Heap Usage:

            PS Young Generation

            Eden Space:

               capacity = 12820938752 (12227.0MB)

               used     = 3802922904 (3626.749900817871MB)

               free     = 9018015848 (8600.250099182129MB)

               29.66181320698349% used

            From Space:

               capacity = 2163736576 (2063.5MB)

               used     = 333233440 (317.7961730957031MB)

               free     = 1830503136 (1745.7038269042969MB)

               15.40083223143703% used

            To Space:

               capacity = 2179465216 (2078.5MB)

               used     = 0 (0.0MB)

               free     = 2179465216 (2078.5MB)

               0.0% used

            PS Old Generation

               capacity = 17179869184 (16384.0MB)

               used     = 3131423416 (2986.358085632324MB)

               free     = 14048445768 (13397.641914367676MB)

               18.22728323750198% used

             

            43962 interned Strings occupying 5527312 bytes.