A little googling can turn up reasonable citations asserting that IIS has no support for AWE so I think it's pretty safe to assume that you can't allocate more than 3GB (4GB - system overhead) to it.
–
ConcernedOfTunbridgeWellsJul 2 '09 at 14:28

5 Answers
5

The MMU on some 32-bit processors can actually support more than 4GB of physical RAM, although a single process can only see 4GB at a time in its virtual address space. A CPU of this sort can be fitted with more than 4GB of RAM and can support multiple processes using more than 4GB of RAM in total. However, a single process can only use 4GB of RAM (minus some overhead from the operating system) at any given time.

On the Xeon this facility is known as Physical Address Extension (PAE) and some operating systems have APIs that allow a process to manipulate the MMU to swap physical memory in and out of the virtual address space of the process. On Windows this API is known as Address Windowing Extensions (AWE) but it is not available on all versions of Windows. Linux and other species of Unix support a similar mechanism.

In order to use this facility the program must be explicitly designed to support it - AWE does not automatically expand the virtual address space of the process. For example, certain versions of SQL Server support it, although I'm not aware of IIS doing so.

Just to note it here for the record, the higher end versions of Windows 2003 (Enterprise and Data Center), do work with >4GB. I had an HP DL380 with 14GB of RAM and W2K3 EE saw all 14GB. VMWare Server was able to use more than 4GB. We replaced W2K3 with ESXi 3.5 U3 and it is able to use all 14GB.

From my reading, Microsoft tried enabling it on other versions of Windows (such as XP) and found that many drivers had problems when memory was >4GB. At least part of the problem was DMA (memory addresses to hardware would be truncated to 32bit and start corrupting memory). So there was an SP that got rid of PAE for most older versions of Windows to prevent stablility problems.