6 Replies Latest reply on Jun 27, 2011 9:56 AM by ronsen

    Load-balance performance

    ronsen

      Hello,

       

      since im interested in how load-balancing with ejb's affects the performance of a cluster/application (for e.g. different lb policies), does somebody have an idea on how to evaluate this? Does it affect the performance or am I on the wrong way?

       

      Is it enough to have something like a "throughput-measurement" of sent values with their corresponding timestamps? Is the performance difference significant and measurable?

       

      Thanks a lot in advance,

        • 1. Re: Load-balance performance
          wdfink

          I've tested different policies, and I measure no big differences for my special applicationn.

          There is a mix of small and huge use cases and it depends on the current throughput how the cluster perform.

           

          The loadbalancing is not a big extra effort.

          If you you double the number of nodes you get a factor around 1.8-1.9 but the benefit will be a bit less as more you add. We test above to 20 instances.

           

          One thing you have to remember, we work without big inter-node communication, so no cache/session replication, it is a pur EJB application.

          I suppose if you have such replication the benefit will be less than my one.

           

          hope this answer your question, if you have additional questions feel free to ask

          • 2. Re: Load-balance performance
            ronsen

            In general, Yes it does I already expected taht it is very less, but nice that it is measureable.

            How did you measure it? By CPU, memory, timestamps to compare the performance on values received? Are your results valid for all policies?

             

            Would beinteresting

            • 3. Re: Load-balance performance
              wdfink

              There are two points to measure.

              At server side we log the dureation and the type of call.

              Same we do at the measure-client.

              Also we analyze the JVM GC log and the CPU and I/O of the (UNIX) server system.

               

              With this data we are able to see the footprint of memory and CPU for each JBoss/App instance.

              With this data we do optimizing and forcast.

               

              It is indispensable to cluster instances with the same power, othewise you will have performance-leaks in your cluster because of the symetric loadbalancing.

              A loadbalancing with server sided measurement will have too much weight for administrate the data mining IMHO.

              • 4. Re: Load-balance performance
                ronsen

                Nice approach, did you run a testclient with random & similar operations or did you do specific calls, why did you measure the duration of calls and not the specific starting times? Was it for/in a real production application?

                I'd like to do a similiar test adjusted for my purpose and to analyze results for different load-balancing policies. If you did it already, was there a measurable difference between the different policies?

                 

                Sadly it isn't possible, but as far as I see is the grade of how its done very good at the moment, otherwise it would be such small numbers in the results

                 

                Btw. are you able to also tell something about this issue: http://community.jboss.org/message/612069#612069 and did you probably evaluate something like this?

                 

                 

                P.s. Bist du eigentlich einer der (wie ich glaube) wenigen Deutschen hier ?

                • 5. Re: Load-balance performance
                  wdfink

                  At server side we measure the duration of the initial SLSB call and all inner calls (with a log level higher), also the starting times.

                  Together with GC CPU I/O it will geive us a picture what is running at a specific time.

                  This is also active (partialy) in production for monitoring.

                   

                  The test client is for load tests that (should) be nearly the production reality, but the world change every moment

                   

                  P.S. Ja, wie schon die Zeitzone aussagt 'waschecht' Deutsch, ob es wenige sind kommt auf die Betrachtungsweise an

                  • 6. Re: Load-balance performance
                    ronsen

                    Mhm, do i understand it the correct way, that you log the initial calls and sum up the amount of the calling times for e.g. a round robin strategy?

                     

                    Like for a round robin policy:

                     

                    Call 1  -  Node 1  -  0.0234

                    Call 2  -  Node 2  -  0.0123

                    Call 3  -  Node 3  -  0.0323

                    ....

                    _____________________________________

                                                = 0.0680

                     

                    as well as that you monitor the gc to "verify" it?

                     

                    P.S. Great hab aber leider noch nicht soviele eindeutig Deutsche hier schreiben sehen