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
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?
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.
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 ?
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
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
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