4 Replies Latest reply on Jun 11, 2017 10:02 PM by delhibabu_r

    Clarification on JBoss memory configuration

    delhibabu_r

      Hi Everyone,

       

       

      I have several doubts on Jboss memory configuration, The environment is setup with the group of 4 nodes which has a Min-heap value of 10GB and Max-Heap value of 10GB. Here are the doubts,

       

      1) If I configured the memory for the server group, Is it allocated for individual nodes(Hope I think as it is) ? - For this configuration, the server should allocate 40 GB ?
      2) What is the meaning in allocating permgen memory, Is it reserved at node boot time(hope it is not), why?

       

       

      Since I am new to this arena, Any help would be appreciatable.

       


      Thanks in advance

       


      Delhibabu

        • 1. Re: Clarification on JBoss memory configuration
          ptyagi_redhat.com

          >> 1) If I configured the memory for the server group, Is it allocated for individual nodes(Hope I think as it is) ? - For this configuration, the server should allocate 40 GB ?

          >> 2) What is the meaning in allocating permgen memory, Is it reserved at node boot time(hope it is not), why?

           

          10gb of heap will be allocated to each individual servers which are configured to use this server group, in case you've not defined any jvm configuration in the host.xml file. The complete java process size for each server will be more than 10gb(max heap size). It'll be the sum of heap space, perm gen,(# of threads * threadstacksize), and jvm overhead and the space that you define for permgen will be part of permgen memory.

           

          - Priyanka

          • 2. Re: Clarification on JBoss memory configuration
            delhibabu_r

            Hi Priyanka,

             

            Thanks for your response, Now am clear about question 1. Regarding question 2, my doubt is "If I specify the permgen of 1024 MB, is it going to reduce the memory of(VM/Physical machine) at JBoss start time or when the threads/application needs the memory ?"

             

             

            -Delhibabu

            • 3. Re: Clarification on JBoss memory configuration
              wdfink

              The memory usage is HEAP+PermGen+Thread*ThreadStackSize.

              If you configure min=max the Heap and PermGen allocate the memory on startup. The ThreadStack is allocated on demand.

              Remember that PermGen is replaced by MetaSpace in JDK8+

               

              As the PermGen is very static you should measure what your application normally use and set this (plus a bit space).

              Also check the balance between young and old generation of Heap (if you don't use G1), as here a huge YoungGen is often not needed.

               

              In general you should avoid to allocate all memory by Java processes, you should keep at least 2GB for the OS. e.g. Linux will use DiscSwapSpace if exhausted and this will make your system and applications very slow

              • 4. Re: Clarification on JBoss memory configuration
                delhibabu_r

                Thanks wolf.

                 

                Got the answer.

                 


                -Delhibabu