Non-linear scaling
Although I take it as a given, not everyone understands that applications do not scale linearly, no matter how much we wish that they did. If the application performs well with 10,000 user sessions per hour in the QA environment with 2 application servers, it may not work well in production with 100,000 user sessions per hour and 20 application servers. One example of this behavior has recently come to my attention.
Weblogic running in a cluster uses a messaging queue like many other applications. However, since the JVMs communicate in a mesh method, additional JVMs add a non-linear amount of traffic—in fact, the scale is geometric. 1 server needs no queue connections, 2 servers need 2 queue connection, 3 servers need 6 connections, etc. Now suppose that there are 168 objects that need to maintain status. Figure 1 shows the total number of messages being passed.


As you can see, the total goes up smoothly, but more rapidly as time goes on. Once you reach 32 JVMs, you have nearly 1,000 message queues talking to each other. Now suppose that each JVM has 168 objects communicating to each other in the cluster. Now you have a much worse situation. Figure 2 shows just how bad it is.

We now have over 160,000 queue objects trying to talk. In a specific situation with a customer, this is the magic point where Weblogic keels over, gasping for air. This works fine with 24 JVM instances, not 32.
This is a rather extreme example of how things do not scale just because you want them too. Adding more hardware or application instances can make the entire tier perform worse.
The only way to know if your application scales is to test it at the level that you wish for it to work. I have heard customers say that it is less expensive to “just add hardware” than to test the infrastructure properly. They may be right in that it can be less expensive to buy hardware, but what are you buying? Do you know that this will really help? Linear scaling is a fallacy, one that should be erased from every operation and application owner’s mind.