Chapter 4 - Attaining High Performance and Scalability
Performance refers to almost any parameter of the computing environment that can be measured or is the subject of a Service Level Agreement. Thus reliability, security, and manageability could all be considered aspects of performance, but are discussed elsewhere in this book. For the purposes of this chapter, performance refers to the speed with which work can be accomplished by applications and the volume of work that can be accomplished within a given timeframe.
Performance includes not only high processing capacity, but the capability to increase that capacity without significantly redesigning the solution. The capacity for high processing typically requires computing resources such as servers and storage, as well as the capability to support more human or automated clients. These aspects of performance are often referred to as scalability.
On This Page
Windows Server 2003 Performance
The reputation of UNIX as a high-performance system stems from three well-supported functions:
Large-scale symmetrical multiprocessing (SMP)
High-performance disk subsystems
High-performance network protocol support through high-performance network interfaces
The original UNIX kernel was developed for single-processor computers and the first implementations of SMP delivered less performance than one might expect based on counting processors. Vendors of proprietary UNIX systems gradually improved the capability of the system to take full advantage of multiple processors. As a result, UNIX systems currently can achieve very high SMP performance.
Vendors providing high-performance UNIX platforms typically incorporate hardware supporting parallel high-bandwidth data transfers to disk storage arrays. UNIX vendors have invested many resources in maximizing the performance of their network stacks, but the resulting high performance is ultimately a result of high-cost proprietary hardware.
Windows Server 2003 Performance
Windows Server also supports SMP, and its capabilities have improved enormously since its inception. Microsoft works with hardware vendors to ensure that enterprise products achieve the high performance potential of Windows Server support for high throughput disk subsystems. This includes non-uniform memory access (NUMA) support that enables Windows Server to surpass the scalability limitations of the SMP architecture.
The Windows Server TCP/IP protocol stack was written and tested with performance and scalability in mind. This implementation allows a properly written application to extract every possible cycle out of the networking hardware. Here are some examples of how the Windows Server TCP/IP stack performs from the white paper Common Performance Issues in Network Applications. Part 1: Interactive Applications:
Windows Server has been tested with more than 200,000 simultaneous TCP connections.
Internet Information Services (IIS) on Windows Server was highly ranked in SPECWeb96, handling more than 25,000 HTTP requests per second.
Windows Server was used to set a record of more than 750 Megabits-per-second (Mbps) on a transcontinental gigabit network consisting of 10 hops.
Each edition of Windows Server 2003 supports the indicated performance-related attributes:
Windows Server 2003, Standard Edition: support for up to 2 GB RAM, and up to 4-way Symmetrical Multi-processing (SMP)
Windows Server 2003, Enterprise Edition: support for up to 32 GB RAM, and up to 8-way SMP, optional support for 64-bit Itanium processors
Windows Server 2003, Datacenter Edition: support for up to 512 GB RAM, and up to 64-way SMP, optional 64-bit support
Windows Server 2003, Web Edition: support for up to 2 GB RAM, and up to 2-way SMP
Increased power is available by either scaling up — acquiring a more powerful Windows Server System —, or by scaling out — adding additional parallel systems. This applies not only to application processing, but also to database serving and tools, such as firewall and proxy serving.
Options to scale up and scale out exist for the UNIX system, but are still subject to the complex and expensive pricing policies of the proprietary system market. In contrast, Windows Server System vendors must price their upgrade options aggressively. If an offering is not the most cost-effective on the market, another vendor is always ready and able to provide a compatible solution.
From the point of view of performance management, this is an ideal situation for the customer. A Windows Server System vendor has little ability to lock in a customer by making alternate possibilities economically unattractive. The only account control strategy available to a Windows Server System vendor is consistently delivering excellent products and services at competitive prices.
Although Windows Server 2003 is well suited to perform out-of-the-box for most customer workloads, it is possible to tune server settings. Tuning can result in incremental performance gains, especially when the nature of the workload will not vary much over time. Tunable parameters available to optimize the performance of the Windows Server System include file serving, networking, storage, and Web serving.
Windows Server 2003 also provides scalability on large enterprise class multiprocessor systems. Significant improvements have been made in scalability on large x86-based and 64-bit systems with eight or more processors. A number of different workloads have been used to analyze scalability, such as Transaction Processing Performance Council TPC-C and the SAP Sales and Distribution workload. In addition, the scalability of several features and components such as IIS, Active Directory, and various networking components have been improved in Windows Server 2003.
Supporting Large Numbers of Users
Although Windows was originally designed as an OS for personal computers, Windows Server 2003 is an enterprise-class server OS. As evidenced at countless customer sites worldwide, Windows Server 2003 is capable of supporting thousands of concurrent users.
Even the largest UNIX systems rarely service thousands of users with a single processor. Often, multiple processors, processor groups, and clusters are used. For very large and dispersed application user bases, multiple processor complexes and multiple instances of the database may even be geographically dispersed.
Windows Server provides hardware system vendors with the ability to use the same techniques and strategies to both scale up to more powerful multi-processor servers, and to scale out to use multiple parallel servers. Windows Server 2003 currently supports up to 64-way SMP (available in the Windows Server 2003, Datacenter Edition), and also supports network load balancing, automatically balancing incoming Internet requests across servers in a cluster.
As of October 2004, the Transaction Processing Performance Council recognizes systems configurations from Dell, Hewlett-Packard, IBM, and RackSaver among its ten best-rated systems in terms of cost per transaction per second. The average user population represented in these benchmarks is approximately 24,400, with the high being approximately 35,000 users and the low being approximately 17,200 users. Nine of the ten systems use Windows Server 2003 as their OS.
For more information on TPC-C benchmarks on cost per transaction per second, refer to:
Web Application Performance
Software scaling is a technique used to increase the capacity of an application by adding servers. While hardware scaling requires specialized servers, software scaling can be achieved using standard off-the-shelf servers. With software scaling, the relationship of cost to added capacity is almost linear.
Microsoft Application Center simplifies software scaling by using clustering. Traditionally, software scaling has been associated with a high cost in complexity and resources to get applications to run on multiple servers as a unified resource. Application Center eliminates these barriers by creating and running a group of servers. Operating is designed to be as simple as operating a single server.
Application Center offers the benefits of software scaling to existing applications without requiring modifications or rewrites because it uses no new application programming interfaces (APIs).
For more information on Application Center, refer to:
Portal and e-Business Performance
Portals and e-Business sites require a number of specialized user capabilities in addition to reliability and availability. Microsoft Commerce Server delivers the high performance, scalability, and proven reliability required by mission-critical solutions. Commerce Server provides a powerful set of capabilities for non-transaction-based sites, including user profiling, content targeting, multi-language, and advanced business analytics. Features also extend to transaction-based sites with capabilities for catalog management, order processing, and merchandising.
For more information on Commerce Server, refer to:
Database OLTP and OLAP Performance
Microsoft SQL Server 2000 is a fully Web-enabled RDBMS that supports some of the largest and highest performing data intensive online transaction processing (OLTP) applications in the world. Three aspects of SQL Server performance are worth considering when considering a migration from UNIX to the Windows Server System:
Very Large Databases (VLDB)
Large numbers of concurrent users
For example, one market research firm used a VLDB to support the consumer packaged goods and healthcare industries. One service offered was an OLAP tool that allowed clients to fully analyze market data. Users were able to access advanced tools such as decomposition trees and perception charts, and could turn raw business intelligence into charts, graphs, or reports using familiar tools in Microsoft Office. This 7-terabyte analytical database grew over time to 30 terabytes, at the rate of 500 million new rows per week. SQL Server 2000 was capable to deliver query results anywhere from 3 to 360 times faster than the previous solution, and reduced TCO by supporting 10 times as many customers per server.
For more information on this example of a VLDB, refer to:
In another example, a major chemical manufacturer evaluated the capability of its business systems to handle a projected threefold increase in the number of users and related increases in its database. To accommodate that growth and to increase system availability and performance, the company decided to upgrade its SAP database to Microsoft SQL Server. The results were a significant decrease in the time necessary to complete tasks such as batch processing, backup, and report generation. These performance increases were important as the company’s user base continued to grow. With approximately 5,000 total users, the system typically had approximately 800 people signed on at any given time, generating a typical transaction rate of 450,000 dialog steps per day and a peak transaction rate of almost 600,000 dialog steps per day.
For more information on this example of Microsoft SQL Server performance, refer to:
For more information on Microsoft SQL Server, refer to:
Options and Techniques
It is sometimes assumed that with the Windows Server System, the rule is one application, one server. This approach is sometimes appropriate, such as in an environment where applications are administered by different organizational units, or when it is deemed simpler to isolate each application to its own independent hardware components, or when it will be managed as an independent unit, or when it can be upgraded as required.
A cost/benefit analysis may show that the management overheads and loss of flexibility incurred in sharing a relatively inexpensive hardware configuration outweigh the marginal gain in utilization. But as the Windows Server System is increasingly deployed as an enterprise standard rather than as an application-by-application solution, the newer versions of the Windows Server System are delivered with more sophisticated tools for accommodating multiple applications, such as:
Windows System Resource Manager (WSRM). Allocates appropriate system resources among multiple processes based on business priorities.
Microsoft Operations Manager. Simplifies the process of identifying and addressing possible application issues.
Virtual Server. Enables multiple server workloads to coexist on a single computer. Virtual Server is a complete virtual machine solution with robust storage, networking and management features and a Web-based management console.
Sources for Detailed Guidance
For more information on the Transaction Processing Performance Council, refer to:
For more information on Windows Server 2003 Performance and Tuning, refer to:
For more information on Microsoft Management Solutions, refer to:
For more information on Windows System Resource Manager, refer to:
For more information on Virtual Server, refer to:
For more information on migrating high performance computing (HPC) applications from UNIX to Windows, refer to: