Microsoft® Windows Server™ 2003 White Paper
Scalability versus Performance
Scalability can be defined as the ability to increase the amount of processing that can be done by adding more resources. Note that scalability differs from performance insofar as scalability does not increase performance per se, but rather, maintains performance in the face of higher throughput (i.e., heavier user and transaction loads). Therefore, performance refers to the system response time under a typical load whereas scalability refers to the ability of a system to increase that load without degrading response time.
To design the most cost-effective solution, IT professionals should consider a system’s scalability factor, the factor by which the overall throughput of the system improves when you double system resources, with the response time being constant.
Almost all business applications are scalable, given proper design choices to avoid potential bottlenecks, such as database access. For example, adding CPUs will not solve your problem if disk access is the bottleneck. An application is only as scalable as its least scalable link. Therefore IT professionals need to detect and alleviate bottlenecks in order to ensure application scalability.
There are several ways to achieve scalability, such as using more powerful CPUs or adding additional CPUs. Selecting the right platform ensures that the operating system does not limit future scalability. The Windows Server 2003 family allows complete flexibility in choosing the most cost-effective scaling mode for your particular application.
There are two different modes of scaling known as scale up and scale out.
Scaling up is accomplished by adding additional resources to a single machine to allow an application to service more requests. The most common ways to do this are by adding memory (RAM) or to use a faster CPU. Windows Server 2003 offers another exciting scaling option, using a 64-bit (Itanium) processor, thereby giving a wider data highway that provides more throughput.
Scaling out is accomplished by adding servers to a server farm (group) to make applications scale by spreading the processing among multiple computers. Windows Server 2003 natively implements scaling out with the Network Load Balancing (NLB) technology. When a server center is scaled out, it will require management software (such as NLB) or hardware to distribute requests among the member nodes. You can add to the server cluster by simply installing a new system preloaded with the software. This allows you to grow and shrink your applications’ capacity by simply adding and removing servers.
Each scaling method requires an understanding of the bottlenecks and the applications before a particular method can be successfully utilized. Scaling out or up doesn’t work if there are other architectural bottlenecks, such as in the time it takes to dispatch messages or the overhead in synchronizing caches. Certain scaling methods also require application awareness of that method. For instance, to scale out effectively an application must be architected to be multi-processor friendly. Likewise, if an application maintains session state “in-process,” it won’t scale up because the process is running on only one server; and other servers in the farm would not be
Implementing a Scalable Architecture3