Expand
Memory Limits for Windows Releases

This topic describes memory limits for supported Windows releases:

Limits on memory and address space vary by platform, operating system, and by whether the IMAGE_FILE_LARGE_ADDRESS_AWARE value of the LOADED_IMAGE structure and 4-gigabyte tuning (4GT) are in use. IMAGE_FILE_LARGE_ADDRESS_AWARE is set or cleared by using the /LARGEADDRESSAWARE linker option.

Limits on physical memory for 32-bit platforms also depend on the Physical Address Extension (PAE), which allows 32-bit Windows systems to use more than 4 GB of physical memory.

Memory and Address Space Limits

The following table specifies the limits on memory and address space for supported releases of Windows. Unless otherwise noted, the limits in this table apply to all supported releases.

Memory typeLimit in 32-bit WindowsLimit in 64-bit Windows

User-mode virtual address space for each 32-bit process

2 GB

Up to 3 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE and 4GT

2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (default)

4 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE set

User-mode virtual address space for each 64-bit process

Not applicable

With IMAGE_FILE_LARGE_ADDRESS_AWARE set (default):

x64:  8 TB
Intel IPF:  7 TB

2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared

Kernel-mode virtual address space

2 GB

From 1 GB to a maximum of 2 GB with 4GT

8 TB

Paged pool

Limited by available kernel-mode virtual address space or the PagedPoolLimit registry key value.

Windows Vista:  Limited only by kernel mode virtual address space. Starting with Windows Vista with Service Pack 1 (SP1), the paged pool can also be limited by the PagedPoolLimit registry key value.
Windows Home Server and Windows Server 2003:  530 MB
Windows XP:  490 MB
Windows 2000:  350 MB

128 GB

Windows Server 2003 and Windows XP:  Up to 128 GB depending on configuration and RAM.
Windows 2000:  Not applicable

Nonpaged pool

Limited by available kernel-mode virtual address space, the NonPagedPoolLimit registry key value, or physical memory.

Windows Vista:  Limited only by kernel mode virtual address space and physical memory. Starting with Windows Vista with SP1, the nonpaged pool can also be limited by the NonPagedPoolLimit registry key value.
Windows Home Server, Windows Server 2003, and Windows XP/2000:  256 MB, or 128 MB with 4GT.

75% of RAM up to a maximum of 128 GB

Windows Vista:  40% of RAM up to a maximum of 128 GB.
Windows Server 2003 and Windows XP:  Up to 128 GB depending on configuration and RAM.
Windows 2000:  Not applicable

System cache virtual address space (physical size limited only by physical memory)

Limited by available kernel-mode virtual address space or the SystemCacheLimit registry key value.

Windows Vista:  Limited only by kernel mode virtual address space. Starting with Windows Vista with SP1, system cache virtual address space can also be limited by the SystemCacheLimit registry key value.
Windows Home Server, Windows Server 2003, and Windows XP/2000:  860 MB with LargeSystemCache registry key set and without 4GT; up to 448 MB with 4GT.

Always 1 TB regardless of physical RAM

Windows Server 2003 and Windows XP:  Up to 1 TB depending on configuration and RAM.
Windows 2000:  Not applicable

 

Physical Memory Limits: Windows 7

The following table specifies the limits on physical memory for Windows 7.

VersionLimit in 32-bit WindowsLimit in 64-bit Windows
Windows 7 Ultimate

4 GB

192 GB

Windows 7 Enterprise

4 GB

192 GB

Windows 7 Professional

4 GB

192 GB

Windows 7 Home Premium

4 GB

16 GB

Windows 7 Home Basic

4 GB

8 GB

Windows 7 Starter

2 GB

2 GB

 

Physical Memory Limits: Windows Server 2008 R2

The following table specifies the limits on physical memory for Windows Server 2008 R2. Windows Server 2008 R2 is available only in 64-bit editions.

VersionLimit in 64-bit Windows
Windows Server 2008 R2 Datacenter

2 TB

Windows Server 2008 R2 Enterprise

2 TB

Windows Server 2008��R2 for Itanium-Based Systems

2 TB

Windows Server 2008 R2 Foundation

8 GB

Windows Server 2008 R2 Standard

32 GB

Windows HPC Server 2008 R2

128 GB

Windows Web Server 2008 R2

32 GB

 

Physical Memory Limits: Windows Server 2008

The following table specifies the limits on physical memory for Windows Server 2008. Limits greater than 4 GB for 32-bit Windows assume that PAE is enabled.

VersionLimit in 32-bit WindowsLimit in 64-bit Windows
Windows Server 2008 Datacenter

64 GB

2 TB

Windows Server 2008 Enterprise

64 GB

2 TB

Windows Server 2008 HPC Edition

Not applicable

128 GB

Windows Server 2008 Standard

4 GB

32 GB

Windows Server 2008 for Itanium-Based Systems

Not applicable

2 TB

Windows Small Business Server 2008

4 GB

32 GB

Windows Web Server 2008

4 GB

32 GB

 

Physical Memory Limits: Windows Vista

The following table specifies the limits on physical memory for Windows Vista.

VersionLimit in 32-bit WindowsLimit in 64-bit Windows
Windows Vista Ultimate

4 GB

128 GB

Windows Vista Enterprise

4 GB

128 GB

Windows Vista Business

4 GB

128 GB

Windows Vista Home Premium

4 GB

16 GB

Windows Vista Home Basic

4 GB

8 GB

Windows Vista Starter

1 GB

Not applicable

 

Physical Memory Limits: Windows Home Server

Windows Home Server is available only in a 32-bit edition. The physical memory limit is 4 GB.

Physical Memory Limits: Windows Server 2003

The following table specifies the limits on physical memory for Windows Server 2003. Limits over 4 GB for 32-bit Windows assume that PAE is enabled.

VersionLimit in 32-bit WindowsLimit in 64-bit Windows

Windows Server 2003 with Service Pack 2 (SP2), Datacenter Edition

128 GB

64 GB with 4GT

IA64 2 TB

X64 1 TB

Windows Server 2003 with Service Pack 2 (SP2), Enterprise Edition

64 GB

IA64 2 TB

X64 1 TB

Windows Storage Server 2003, Enterprise Edition

8 GB

Not applicable

Windows Storage Server 2003

4 GB

Not applicable

Windows Server 2003 R2 Datacenter Edition

Windows Server 2003 with Service Pack 1 (SP1), Datacenter Edition

128 GB

16 GB with 4GT

1 TB

Windows Server 2003 R2 Enterprise Edition

Windows Server 2003 with Service Pack 1 (SP1), Enterprise Edition

64 GB

16 GB with 4GT

1 TB

Windows Server 2003 R2 Standard Edition

Windows Server 2003, Standard Edition SP1

Windows Server 2003, Standard Edition SP2

4 GB

32 GB

Windows Server 2003, Datacenter Edition

128 GB

16 GB with 4GT

512 GB

Windows Server 2003, Enterprise Edition

32 GB

16 GB with 4GT

64 GB

Windows Server 2003, Standard Edition

4 GB

16 GB

Windows Server 2003, Web Edition

2 GB

Not applicable

Windows Small Business Server 2003

4 GB

Not applicable

Windows Compute Cluster Server 2003

Not applicable

32 GB

 

Physical Memory Limits: Windows XP

The following table specifies the limits on physical memory for Windows XP.

VersionLimit in 32-bit WindowsLimit in 64-bit Windows
Windows XP

4 GB

128 GB

Windows XP Starter Edition

512 MB

Not applicable

 

Physical Memory Limits: Windows 2000

The following table specifies the limits on physical memory for Windows 2000.

VersionLimit in 32-bit Windows
Windows 2000 Professional

4 GB

Windows 2000 Server

4 GB

Windows 2000 Advanced Server

8 GB

Windows 2000 Datacenter Server

32 GB

 

Related Topics

4-Gigabyte Tuning
IMAGE_FILE_LARGE_ADDRESS_AWARE
Physical Address Extension

 

 

Send comments about this topic to Microsoft

Build date: 7/1/2010

Community ContentAdd
Annotations
Windows 7 Memory limit / 2008 R2 not for 32 bit
I find myself in need of Windows 7 or greater 32 bit with more than 4GB ram. x64 fails due to backwards comparability (a few old programs) and Windows Vista failed an accessibility test that is important to me (which 7 passed).
Facts
  • A 32 bit OS can only use 4GB of memory total, that means if you have 4GB of ram and your graphic card has 1GB of ram, you have a total of 5GB of memory.
  • Out of that 5GB of memory, you can only use 4GB total. 1GB the graphic card will take up, so now the 32bit OS can only use 3GB. 
  • Enabling PAE, will limit to the OS to 2GB total. What PAE does is dedicate 2GB to OS and the other 2GB to anything other then the OS. Apparently some people don't understand how PAE works and think that some how it can magically make a 32bit XP use more then 4GB, which is impossible, so after noticing my explanation is not getting through, I thought a visual from MS itself might help sink it in, you can see it here: http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx     
    • The 'fact' above is the perfect example of this misunderstanding. PAE has nothing to do with the user and kernel pool being seperated.
    • Many confuse virtual memory with physical memory. All requests for memory by applications; that is running processes, such as explorer.exe, wmplayer.exe, dwm.exe, iexplore.exe, etc; are furfilled using virtual memory. Virtual memory is just an abstraction which includes physical memory and your pagefile(s). Yes, virtual memory includes physical memory!
  • Vista 32bit can see only 3.5GB of ram total. The new sp1 only reports how much memory you have intalled, not how much memory you can use.
AH! I was going to post these 'inconvenient facts' myself. the 'PAE' (please READ about your acronyms, people!) means 'Physical Address Extension'
Why is that important? the last word, really. 'Extension'. this does NOT enable you to use more than 4GB ram. Face facts people. This is a form of some memory management features, 
more than anything else. This isn't even a 'Microsoft thing'. it's a 32-bit computing limitation. the 'Microsoft thing' part comes in because they've somehow given people
the idea that using this boot flag can somehow magically let your computer address more ram than any 32-bit OS is capable of.
I blame their marketing department. Stupid buggers.
And yes, there's a page on microsoft that DOES say that it allows you to use more than 4GB ram. THAT's where people got this idea.

If you want and bought more than 4GB of ram. suck it up and get a real 64-bit OS already.
You could afford the RAM, so go do it. If it's the cost of windows 64-bit that's stopping you,
go download the 64-bit version of ubuntu or something it's free. And if you hate MS, you should want to do that anyway.
But above all, quit ranting. MS isn't going to 'fix' anything because the users rant. This should be painfully obvious to us all by now.
I mean jesus, just look at IIS if you hope that they will one day 'fix' thier OS....





12 GB (7.99 GB usable)
$0$0 12 GB (7.99 usable) is displayed under computer properties / system / installed memory (RAM). How do i get the all 12 GB working?? $0$0 Specs.-OS Windows 7 Home Premium 64 bit$0 Intel i7 950$0 evga x58 sli classified$0 12 GB corsair DDR3 xms3 platinum series
set maximum memory win 7 x64
$0$0 $0 $0Check the advanced boot options.$0 $0Go to Start, in the search bar type msconfig and press enter$0 $0System Configuration window will open on the screen$0 $0Click on tab named "boot"$0 $0Click on "Advanced Options" and uncheck the box for "Maximum Memory" $0$0 $0 $0
Just my two cents.
Fact. The only reason why the x32 version of Windows will not see anything past 3.1gig (in some versions) is not a hardware issue. The majority of x32 Intel processors beginning with the Pentium PRO in 1995 have been able to able to support the addressing for up to 64gig of RAM. And while the limit for 32 bits is calculated to 2 to the 32nd (32bit) power or 4 gig, 2 to the 16th (16bit) power is 64k. 16bit MSDOS was designed to use 640k of RAM on an old 8086. A little higher than the "limitation" indicated by math.

[Edit: the 8086 had a 20 bit address bus or 1GB addressable RAM limit, but the later 80x86 families could address up to 32 bits in different modes. However the 8086 CPU was always 16bit. Debate also raged at the time over whether the 80x86 families were 16, 20, 24 or 32 bit processors. But the 1Gb 8086 vs 640K MSDOS stupid limit became infamous when Bill Gates stupidly asked in defence of his stupidity "Who needs more than 640K of memory?" (DSR)]

Opinion. The reason x32 Windows will not recognize anything past that is probably market based. 64bit processors came out a couple years after Windows XP. The first true (no I don't consider XP pro x64 version a true 64bit operating system) 64bit operating system to come from MS was Vista. Everyone knows how well that went. People were downgrading, or doing anything they could to stay away from that mess. Businesses couldn't initially justify the cost of the machines to run Vista acceptably amongst other things (reverse compatibility in hardware and software, reliability issues, hardware support, ect) as indicated by Vista's paltry 18% market share at the launch of 7. In order to sell more copies of Vista and throw some business down their partners way they came up with some pretty lame (IMO) excuses to get people to buy new stuff. Thanks to Vistas horrendous overhead the price of memory has dropped creating this little conundrum.

And while I have my opinions as to why Vista was such a train wreck. It has definitely become more refined over time. Windows 7 is hands down, again in my own opinion, the best OS Microsoft has launched to date. And there are definite advantages to 64bit processing. A majority of the software is still written for 32 bit processing negating most of the advantage you would get with using a 64bit operating system. Besides, doesn't seem to matter which computer or what Microsoft OS I jump onto. The closer I get to utilizing 2 gig of RAM, the crappier the computer seems to run. Kind of like a glass wall there.
Enable PAE for full use of 4GB RAM
http://...

The above link describes how to set up PAE (Physical Address Extension) on Vista 32 bits (It can be done in other 32 bits Windows), so that it can make use of 4GB RAM, not just ~3.5GB.

To authors of this message: Please, read how PAE works.
Doesn't include Windows 2008 & Windows 7 info
This document is out of date as it doesn't include the limitations of Windows 2008 and Windows 7. For example, nonpaged pool, page pool and system cache are not listed.
64/32 bit uestion for DAW
hello all. thanks for these very useful numbers. now me being a noob, i have a question since i dont really understand the per process thing.

so i wwork with cubase 5 64 bit version on win 7 ulimate 64 bit. no let say i add a kontakt (sampler) 32 bit. cubase 5 is then a host for this konakt. so my question is since it says per process, does kontakt have 4 gb ram and cubase has another 4 gb of ram? or how do i have to understand this per process?


thank you
Confusion about kernel memory limits and PAE?
There seems to be some confusion about memory limits for the kernel and each process on 32-bit systems. I have written several articles that explain all that (and PAE, by the way) in great detail:

http://blogs.sepago.de/helge/2008/01/23/windows-x64-all-the-same-yet-very-different-part-2/

http://blogs.sepago.de/helge/2008/05/25/x64-my-terminal-servers-run-just-fine-with-32-bits-and-81216-gb-ram/

x64 Client Maximum 128GB limit is not fact.
But, fact in the few past.
If talking only by design、 even XP x64 can treats 32TB.
2 socket hardware, such as Opteron 2000 number processor platform had maximum memory 128GB.
Microsoft says support that only what it was possible to prove.

And now, Xeon 5500 number processor platform can support maximum up to 144GB.
Microsoft will do the proof examination of 144GB in the near future.
64Bit CPU/32Bit application Which operating system will provide maximum memory
I need to select an operating system for a server that runs on Xeon 64Bit (5080) platform. I have an application that needs as much memory as possible. Which operating system version setup will provide the maximum memory to this 32 bit application?
Facts in error

"Apparently some people don't understand how PAE works and think that some how it can magically make a 32bit XP use more then 4GB, which is impossible, so after noticing my explanation is not getting through, I thought a visual from MS itself might help sink it in, you can see it here: http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx"


I also mistakenly thought a 32bit operating system could only use 4GB, having only 32 address bits to work with. But as you can see from the tables above, 32bit Windows Server 2008 can use up to 64GB of physical memory. Turning on the PAE feature modifies the virtual address mapping used by the processor hardware. There is a good explanation on Wikipedia:
http://en.wikipedia.org/wiki/Physical_Address_Extension

Very basically, each process is still limited to 4GB because of the 32bit addresses, but the OS can use a processor control register to map that 4GB space above the 4GB. So process "A" might have it's 4GB virtual address space start in physical ram at 8GB, process "B" at 12GB, etc.

Many people will doubt this because of their personal experience with Microsoft 32bit desktop operating systems. Microsoft has specifically limited the desktops to 4GB for driver compatibility reasons.

Correction, read my facts again and you will see I specifically said "XP 32 bit", second I point to ms's own site and you take us to wiki which anybody can edit? since when is wiki's info more reliable then ms's own site when we discussing ms's OS? lol

In short XP 32-bit can't see more then 4GB of ram total no matter what you do, and its clearly stated here by MS:http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx

yes other 32-bit OS-es can use more then 4GB of ram but not XP 32-bit

Answers

"I running windwos Vista 64-bit with 8-GB of ram. Most of my applications are 32-bit applications. How much RAM can VISTA dedicates to 32-bit application?"

64 bit editions of Windows can only attribute a total of 4 GiB of RAM to any single 32 bit virtual memory instance (or application), regardless of your total RAM. The reason is simple, 64 bit editions of Desktop Windows run on the x86-64 architecture, which is a processor architecture capable of running both 64 and 32 bit instructions, limiting 32 bit instructions (or applications) to what 32 bit limits them to, thus, 4 GiB of RAM.

Intel and AMD's specification of PAE does support the x86-64 architecture but the software layer of Microsoft's PAE (the API), called AWE, is not supported on 64 bit editions of Windows, so Windows Vista 64 bit cannot attribute more than 4 GiB of RAM for a 32 bit application.

In fact, true 64 bit architectures like the Intel Itanium processor do not support 32 bit applications. The only reason 32 bit applications work on 64 bit editions of desktop Windows is because the very architecture at its core, called x86-64 (often erroneously shortened to x64), is a hybrid architecture capable of running both 32 bit and 64 bit instructions.

It's also the reason why drivers may not work in 32 bit, but applications will, on Windows Vista 64 bit. The Windows Vista 64 bit kernel is written in 64 bit, and thus, drivers must also be written in 64 bit. If Microsoft would have made the kernel in 32 bit, expanded support would have had to rely on PAE, but drivers wouldn't have had to be re-written. In fact, Apple used that strategy with Mac OS X's transition to 64 bit processors and only its future Snow Leopard will have its kernel in 64 bit.



"I also mistakenly thought a 32bit operating system could only use 4GB, having only 32 address bits to work with. But as you can see from the tables above, 32bit Windows Server 2008 can use up to 64GB of physical memory."

Note however that Windows Server 2008 32 bit uses PAE to achieve this.



"The limit for 64-bit XP is given as 128 GB, while on the support site, http://support.microsoft.com/kb/283247/en-us, it is given as 16 GB!
What is correct, 16 GB or 128 GB?"


Short answer is 128 GiB of RAM.
While Windows XP Pro 64 bit can theoretically support 128 GiB of RAM, driver issues, lack of motherboard support and PAE's Intel technical spec limit to 64 GiB can limit this. Very few 32 bit systems will be built to handle 128 GiB of RAM as the use of a 64 bit operating system becomes much more advantageous in this situation.


I have an article on my blog, Pacoup.com, but you'll have to find it yourself as I cannot link to my own articles on MSDN.

XP / Vista x86

WROTE:

XP and Vista can only truly manage ~3GB of Physical RAM. 4GB is misleading.

Quote:

Xp and Vista can truly manage ~4GB of physical RAM, but shows only the "available" ram. If you have a onboard vídeo with 512mb and something else on-board to complete 1gb, your manager will show only 3GB "available".

QUOTE: PP

Xp and Vista can truly manage ~4GB of physical RAM

Memory Limits
Well, that's not logical - 64-bit Vista Business can have up to 128GB RAM, while 64-bit Windows Server 2008 Standard can only have 32GB. Standard Edition is expensive enough to justify increasing the limit to 128GB in my opinion. Why should buying the next version up, Enterprise Edition, allow a 64-increase in memory (up to 2TB!) - unless Standard Edition is being gradually phased out? Hopefully this will be done with Windows Server 2008 Service Pack 1? I can understand Web Edition being limited to just 32GB though.

That said, most of the memory limits make sound sense.
How much windows VISTA 64-bit dedicates to a 32-bit application!
I running windwos Vista 64-bit with 8-GB of ram. Most of my applications are 32-bit applications. How much RAM can VISTA dedicates to 32-bit application?

cs

Conflicting information about 64-bit XP limit (inconsistent with KB 283247)

The limit for 64-bit XP is given as 128 GB, while on the support site, http://support.microsoft.com/kb/283247/en-us, it is given as 16 GB!

What is correct, 16 GB or 128 GB?

Some customers have been reported problems with running 64-bit XP on 32 GB RAM. Can you clarify if 32 Gb RAM is supported and if so, what was the purpose of information in KB 283247

Windows 2003 x64

There was a Windows 2003 x64 verison i.e. NON R2 so why does it list this as Not applicable ? Should be 32gb for x64 same as R2 version?

Page view tracker