inset
Performance Improvements in Windows Server 2003
Jul. 21, 2003

Microsoft has improved the performance of Windows Server 2003 by enabling it to take advantage of recent hardware advances, redesigning the OS architecture, and enhancing common Windows services. These improvements could prove valuable to IT managers implementing cost-saving measures, such as consolidation, and help developers relieve performance bottlenecks in certain applications. However, taking advantage of some high-performance capabilities may require new hardware or force developers to rewrite or optimize applications.

The improved performance of Windows Server 2003 could encourage customers to update their systems from Windows NT 4.0 (NT 4) and Windows 2000 Server. Better performance benchmarks could also help Microsoft fend off defections to Linux and Unix-based systems as businesses contemplate upgrading from older versions of Windows or migrating from proprietary Unix-based platforms to Intel-based servers running Windows. However, some older Windows server applications may need to be rewritten to run on Windows Server 2003, which could complicate the picture for businesses and create resistance to Microsoft’s sales efforts.

Improving Performance

Improving the performance of computer systems generally involves maximizing transaction throughput (the number of transactions per second a system can process, sometimes called capacity), reducing resource consumption (for example, the processing power required to complete a transaction), and minimizing the system’s response time (the average amount of time it takes the system to process a transaction). Scalability, often discussed in unison with performance, measures a system’s ability to accommodate additional load beyond the capacity of a single system. The two qualities are not necessarily linked: it is possible for a highly performing system not to be scalable, and vice-versa.

With Windows Server 2003, Microsoft has improved performance (and in many cases scalability) by enabling the OS to take advantage of recent advances in hardware; by optimizing the Windows kernel—the components that make up the core OS, such as the memory and I/O managers, and the system process scheduler; by making architectural changes to improve Windows services, such as the Internet Information Service (IIS); and by including faster tools and utilities, such as the disk repair CHKDSK utility.

(For more information on improvements to utilities, see the sidebar "File Utility Performance in Windows 2003".)

Windows Server 2003 performance benchmark data (for example, the TPC-C benchmark, which is designed to simulate real world on-line transaction processing load) show that these changes have led to improvements in transaction performance for both single-node systems (one computer) and multi-node systems (a cluster of computers supporting a single function or application), compared with Windows 2000. Similarly, single-processor and multiprocessor systems also show significant transaction performance improvements.

Competing with Unix, Linux

Prior to Windows Server 2003, Microsoft generally focused on competing with Unix-based systems on a cost-performance basis, or through the use of complex, multi-server clusters to achieve high raw-performance benchmarks.

However, in recent TPC-C benchmarks with the 64-bit edition of SQL Server running on Windows Server 2003 Datacenter Edition, Microsoft has gone toe-to-toe with its Unix-based competitors on comparable, single-node hardware. These results now put Microsoft at parity with high-end, Unix-based competitors, such as IBM AIX and HP-UX, on both price-performance and raw performance benchmarks.

With these favorable benchmark comparisons, Microsoft can position Windows Server 2003 as a competitive alternative to Unix-based solutions at the high end of the market and as a hands-down winner to Linux elsewhere. (See the illustration "Windows Performance Gains Ground" for summary of TPC-C data over the last two years.)

Hardware Advances

Windows Server 2003 takes advantage of recent advances in computer hardware, including 64-bit processors, processor hyper-threading, and non-uniform memory access (NUMA). If carefully employed, these advances can help developers and IT managers improve the performance of certain applications.

64-Bit Processors

Windows Server 2003 Enterprise and Datacenter Editions are both available in versions designed to run on the Intel Itanium family of processors. Because these 64-bit processors can address huge amounts of memory, this could help speed memory-intensive applications, such as CAD programs, scientific computation algorithms, data analysis and warehousing components of line-of-business systems, or systems that process large, complex OLAP data sets.

Previously, 64-bit processor support was only offered in Windows Advanced Server Limited Edition (an early release of the 64-bit version of Windows Server 2003 that was offered in 2002 to support Intel’s first Itanium processor). But while Advanced Server Limited Edition could only address up to 64GB of memory, Windows Server 2003 addresses up to 512GB of memory, providing additional growth room for large memory applications.

Additionally, where Advanced Server Limited Edition supported up to 32 processors on a single server, servers running the 64-bit version of Windows Server 2003 Datacenter can have as many as 64 processors. This provides additional headroom for these large systems, giving IT managers a way to maintain application performance as their demand for resources grow.

(Microsoft has also confirmed that it will provide a version of Windows Server 2003 for 64-bit AMD processors, with release planned for late 2003 or early 2004. For more information, see "Windows 64-Bit Supports AMD" on page 26 of the June 2003 Update.)

Processor Hyper-threading

Hyper-threading is a CPU technology introduced in 2002 with Intel’s IA-32 Xeon processors that creates two logical processors for each physical processor in a system. Logical processors are capable of simultaneously executing separate instruction streams, called threads, which could result in better resource consumption for multithreaded applications or multiple applications running on a single machine.

Hyper-threading offers the possibility of increasing computational throughput on a server without incurring the cost of adding physical CPUs. However, since the logical processors in a hyper-threaded CPU compete for certain system resources (for example, the processor’s on-board cache), a computer running a single hyper-threaded CPU will not perform as well as a comparable computer running two CPUs that are not hyper-threaded.

Windows Server 2003 addresses two limitations of Windows 2000 that complicated the use of hyper-threading.

First, Windows Server 2003 only counts physical processors for licensing purposes. Windows 2000, conversely, treats logical processors as physical processors, counting each logical processor in a hyper-threaded system against the maximum processor limit for that edition of the OS. For example, Windows 2000 Professional allows a maximum of two processors—logical or physical—per machine. At startup, the OS counts processors based on information provided by the system BIOS. If improperly configured in the BIOS, the OS will count the two logical processors on a single physical processor, and consequently, will not use the machine’s second physical processor.

Second, Windows Server 2003 is also smarter about scheduling threads among processors on hyper-threaded systems. Windows 2000 simply assigns threads to logical processors sequentially. Windows Server 2003, on the other hand, will dispatch threads to inactive physical processors whenever possible to minimize resource contention.

These changes should result in better performance for multithreaded applications without requiring additional development or optimization on the part of applications developers.

Non-Uniform Memory Access Systems

Windows Server 2003 also offers improved support for NUMA systems. NUMA is a system architecture used by some OEMs (such as IBM and Unisys) that arranges CPU and memory in local pods of multiple (typically four) CPUs. Pods are connected to each other via an external bus that transports cross-pod data traffic. This is in contrast to Symmetric Multiprocessor (SMP) architectures, which are simple symmetric arrangements of CPUs and memory separated by a bus.

NUMA is important because it addresses a scalability concern inherent in symmetric architectures. In SMP systems, as the speed and number of processors increase, the competition between CPUs for access to memory creates bus contention and limits the ability of a system to scale. Consequently, system throughput does not grow linearly with the number of processors; for example, doubling the number of processors in an SMP computer does not double its performance or capacity.

The NUMA pod arrangement addresses the contention issue by limiting the number of CPUs competing for access to memory; processors will access memory within their own pod faster than the memory of other pods. To benefit from this architecture, however, both the OS and applications must be designed to minimize cross-pod data traffic. If the software is designed properly, the architecture could result in more nearly linear scaling as resources are added to a computer system.

Windows Server 2003 improves the way the OS assigns threads and memory pools to pods, increasing the degree to which threads and the memory they consume are physically located in the same pod. Having a given application run locally within a pod reduces data transfer on the system interconnect and resource contention with other applications, which should improve performance of applications on NUMA-based systems provided they are properly designed.

Other Kernel Improvements

Windows Server 2003 includes a variety of performance improvements in the kernel, the core piece of code responsible for scheduling application and service execution, and for overall management of system resources such as memory and disk I/O. Performance improvements in the OS kernel should translate into better service and application performance, since all services and applications run under the guidance of the kernel.

Microsoft has improved the way the kernel schedules thread execution and synchronizes requests for resources, which could help reduce contention-related performance problems on large, multi-processor servers. Additionally, Microsoft has optimized the memory manager to better handle systems with large memory, and has also improved the heap manager, which is used by applications to allocate and free memory.

For example, Windows 2003 contains a new type of heap called the Low Fragmentation Heap (LFH). The LFH reduces the memory fragmentation that occurs when applications allocate and free memory, which could improve the performance of applications that perform these operations frequently. Microsoft takes advantage of these changes in its own services: for example, Microsoft has employed the LFH in the Active Directory service to improve its performance.

Windows Services Improved

The changes made to the OS architecture should result in better performance for all Windows services, but Microsoft has also made changes to some services themselves that could further contribute to performance gains.

Some of the more important services Windows Server 2003 improves are File Services, Active Directory (AD), and the Internet Information Services (IIS) Web server.

File Services

Microsoft has changed the way File Services, the code that allows a Windows system to act as a file server, manages memory internally, and has optimized the Server Message Block (SMB) client and server caching. (SMB is the protocol Windows uses for transferring files across a network.)

These changes reduce the amount of time it takes for File Services to respond and transfer data to clients, which effectively increases the capacity of a file server; that is, a given server configuration can support more users running Windows Server 2003. This could help IT managers faced with overloaded file servers or those looking to reduce overall server count through consolidation.

Active Directory

The AD service provides a central point of management for Windows-based user accounts, clients, servers, and applications. For example, AD is the central authority for security in a Windows network, authenticating user identities and authorizing user access to network resources. Microsoft has optimized the AD service to reduce the size and complexity of the underlying databases that house AD information.

These changes reduce the response time of AD operations (such as queries or searches for printer resources), which could help businesses in two obvious ways. First, applications that access AD information—for example an application that searches the AD database for user names—will see significantly faster response time. Second, because individual AD operations are faster, Windows Server 2003 domain controllers will be able process a greater number of transactions per unit time than Windows 2000. This increase in capacity could allow IT groups to meet the demand for AD services with fewer servers, or consolidate an existing Windows 2000 Server AD infrastructure on fewer Windows Server 2003 servers.

(For more information on AD, see "Active Directory Improvements Remove Many Migration Roadblocks" on page 3 of the Aug. 2002 Update.)

Internet Information Services

Microsoft has made gains in its Web server service by moving performance-critical code that processes the Hypertext Transfer Protocol (HTTP) into the Windows kernel and improving the ability of applications to exploit multiprocessor servers and server farms.

In IIS 6.0, HTTP requests (such as a request for a Web page or an image) are received by a driver (HTTP.sys) and then passed to the appropriate Web application for processing. HTTP.sys runs as a kernel mode driver, which substantially speeds its performance and protects it from any problems caused by user-written application code that processes HTTP requests.

Additionally, IIS 6.0 can create multiple "worker" processes for each Web application. Each of these processes can serve HTTP requests on a separate processor, allowing application developers to more fully exploit the capacity of a multiprocessor or hyper-threaded server. For example, configuring a Web site to serve static content from one processor and execute dynamic Web pages on another could speed delivery of both, widening the gap between IIS and its open source competitors.

(For more information on IIS 6.0, see "Rewritten IIS Anchors Windows .NET Server" on page 3 of the July 2002 Update.)

Applications May Need to Be Rewritten

Upgrading to Windows Server 2003 and taking advantage of advances in new computer hardware could give businesses a way to improve the performance of certain applications. Additionally, IT managers could find that Windows Server 2003 gives them a way to get more mileage from existing hardware.

However, the gains from the performance improvements in Windows Server 2003 will depend on how well an organization's applications exploit the OS and underlying hardware. Companies also have to look carefully at whether their applications are compatible with the new OS, because the many internal changes that benefit performance can also affect application behavior.

Exploiting the OS and hardware. Making applications run faster using new hardware architectures such as 64-bit and NUMA systems is complex. For example, migrating an application from a 32-bit server to a 64-bit server will, at the very least, involve recompilation of that application. Similarly, to gain maximum benefit from NUMA-based systems, developers will likely have to make some changes to the way their applications allocate and consume memory. Microsoft faces these same issues with its own products: for example, Exchange is not yet available in a 64-bit edition.

Compatibility. Windows Server 2003, like Windows 2000 before it, cannot run all NT 4 applications out-of-the-box. Moreover, Windows Server 2003 has some security and architectural changes that can create problems for Windows 2000 applications—for instance, Exchange 2000 will not run on Windows Server 2003. Additionally, a few existing IIS 5 applications are not fully compatible with IIS 6.0. Organizations using Windows Server 2003 to perform Web and application server consolidation will have to carefully test compatibility in a pilot environment and may have to rewrite applications for them to run optimally on IIS 6.0.

Resources and Availability

For more information about Windows Server 2003 features and editions, see www.microsoft.com/windowsserver2003/default.mspx.

For a FAQ on Windows Advanced Server Limited Edition, see www.microsoft.com/windowsserver2003/64bit/aslefaq.mspx. Because the 64-bit Windows Advanced Server Limited Edition was a prerelease version of the Windows Server 2003 code base, it is no longer available or supported. However, customers who purchased it will be given a free upgrade to the 64-bit version of Windows Server 2003 Enterprise Edition.

Microsoft provides details on the performance of Windows Server 2003 at www.microsoft.com/windowsserver2003/evaluation/performance/default.mspx.

For details on the performance studies of Windows 2003 that were commissioned by Microsoft and conducted by VeriTest, see www.veritest.com/clients/reports/microsoft/.