Scalability
Once a portal is productive, deployed applications often experience a huge increase in the volume of managed data and the number of concurrent users on the system. It is important that the production environment can keep up with the increasing load by adding memory, CPUs and new cluster nodes.
The following rule of thumb is a good approximation of what scalability is all about. Scalability can be considered as the increase of the capacity (for example, number of concurrent users and transactions per second) divided by the required investments in hardware (for example, number of processors, total memory, number of cluster nodes). The goal is of course to maximize the scalability value also for big installations.
Scalability = ∆Capacity / ∆Hardware
Scalability indicates how much a system can benefit from added resources. When adding a CPU to a system, it is important that a maximum portion of the processing work can be done parallel. Operations that require exclusive access to a resource will create a bottleneck, because only one thread and therefore one CPU may access it and the others will spend their time waiting for it to be released. Therefore all data that is shared between users, applications, services or sessions can interfere with scalability.
Improving scalability:
· Evaluate data structures and algorithms with large amounts of data.
· Limit synchronization to the smallest scope possible.
· Avoid per-request I/O-operations whenever possible.