5 Replies Latest reply on Oct 23, 2013 8:46 AM by wdfink

    How many instances I need to create for better performance?

    zipzip81

      Hi,

       

      I have 96GB RAM in a server. How many instances I need to create in order to do load balancing and for better performance and stability?

       

      Can someone recommend how much RAM I need to allocate for each instance? Will it able to handle hundred thousand over of concurrent users?

       

      Help please?

        • 1. Re: How many instances I need to create for better performance?
          rhusar

          I have 96GB RAM in a server. How many instances I need to create in order to do load balancing and for better performance and stability?

          Are you also striving to achieve high availability (HA)? Seems like you have a single point-of-failure if its just one huge system.

           

          Can someone recommend how much RAM I need to allocate for each instance?

          Really depends on your application and how memory-greedy it can be.

           

          Will it able to handle hundred thousand over of concurrent users?

          I don't see why not, however you have no mention about the CPU which is also a limiting factor here.

           

          So all I can tell you at this point: benchmark.

           

          1. Setup one huge instance, deploy app, run test clients, monitor usage, record results.
          2. Split into 2 instances, setup clustering if you want to, run the same usag pattern, etc.
          3. 4 instances... so on.
          • 2. Re: How many instances I need to create for better performance?
            wdfink

            In addition to Rado's comment, from my experiance you can start with one instance and tune the memory and thread/pool configurations.

            If you have no real problem with the GC you might run one instance (if you do not need HA, but here it is better to have two separate machines) you might bring the COU to 100% with one instance. In that case a split only make sense if you are in trouble with long GC pauses after a running period, in that case a smaller amount of memory make sense to prevent from long running memory copy sessions.

             

            Also the RAM doesn't help if you reach the maximum CPU load with a smaller amount of memory.

            • 3. Re: How many instances I need to create for better performance?
              rhusar

              +1

               

              Just remembered, it also depends what AS version we are talking about. EAP 6 has been designed with both horizontal and vertical scalability in mind, so on previous versions breaking into multiple smaller instances might yield higher benefits.

              • 4. Re: How many instances I need to create for better performance?
                zipzip81

                Hi all,

                 

                Yes. The servers is for High Availability setup. Im using Jboss AS 7.1.1

                 

                There is a hardware load balancer infront of 2 servers. each server contain of 96GB RAM and 8 Core processor.

                 

                So how many instances should I split them up? 4 instances or 10 instances? How much Heap size I need to allocate to each instance?

                 

                What is the recommendation for a stable setup that can cater for hundred thousand over concurrent request.

                 

                Help please?

                • 5. Re: How many instances I need to create for better performance?
                  wdfink

                  As Rado and I explain you have to do a benchmark.

                  Setup one instance for each server and create throughput. Monitor the CPU and heap uilisation and check whether you have enough memory to handle the load.

                  If you reach 100% CPU with that you should not add a second instance as it will only slowdown.

                  For the JVM you should choose a good GC approach, you might try CMS collector or G1 (with Java7) which should have a good performance.