Can Active Directory benefit from x64?

September 22, 2006 at 12:04 PM2102

We all know that Microsoft products such as Exchange Server 2007, SQL 2005 x64 can really benefit from x64 platform. But what about Active Directory? Similar to the limitations of Exchange Server 2003, Active Directory suffers from the 2GB virtual memory limit of 32bit operating systems. That`s not a problem for small AD deployments but it can be a real issue for large deployments with a LOT of objects. With large number of object it gets difficult to cache the Active Directory database and authentication requests and queries leads to excessive paging and a slowdown in performance.

So if you are planning or working with a large Active Directory deployments than go for x64 platform. Especially now when prices for 32 and 64bit platform are almost the same. [Y]

Let me quickly try to explain about 2GB memory limit in 32bit operating systems.  You probably all heard about the Windows 4GB memory limit. When talking about performance tuning and server sizing, people are quick to mention the fact that that an application on an 32bit Windows system can only access 4GB of memory.

What does that really means?

A 32 bit processor uses 32 bits to refer to the location of each byte of memory. 2^32 = 4.2 billion. That means a memory address that`s 32 bits long can only refer to 4.2 billion unique locations in memory (that`s 4GB of memory). (Source: Wikipedia)

In the 32bit Windows each application has its own »virtual« 4GB memory space. This 4GB memory space is distributed into two parts, with 2GB dedicated for kernel and 2GB for application usage. Each application has its own 2GB, but all have to share the same 2GB kernel space. Using the /3GB boot.ini switch is even worse in some cases (Terminal Server for example). This switch changes the amount of memory for application and kernel environment. It gives 3GB of memory for application environment and »only« 1GB of memory for kernel. But if you are using /3GB boot.ini switch for SQL Servers you can gain performance since it`s a memory-intensive application (and not kernel).

There is a difference when systems are booted using /PAE switch. Physical Address Extension (PAE) is an Intel provided memory address extension that enables support of up to 64GB of physical memory for application. PAE allows the most recent IA-32 processors to expand the number of bits that can be used to address physical memory from 32bits to 36bits trough support in the host operating system for applications using Address Windowing Extension (AWE) application programming interface (API). AWE enables programs to reserve physical memory as non-paged memory and then to dynamically map portions of the non-paged memory to the program`s working set of memory. This process enables memory-intensive programs, such as I already mentioned before (SQL – databases), to reserve large amounts of physical for data without having to be paged in and out of a paging file for usage. Instead the data is swapped in and out of the working set and reserved memory is in excess of the 4GB range.  Additionally, the range of memory in excess of 4GB is exposed to the memory manager and the AWE functions by PAE. Without PAE, AWE cannot reserve memory in excess of 4GB.

Posted in: Windows | Active Directory | x64