4GB RAM in Windows?

Posted by

For months, I’ve had people asking about the 4GB vs 2GB RAM scenario. The answer isn’t all that simple when it comes to 32-bit flavors of Windows, but despite the language barrier, Aqud does his best to explain it to the community again:

Windows addresses a maximum of 3,37GB at my server, this was due to DEP (Data Executing Prevention) who uses up a few of the 4GB addressable addresses. To expand the addresses you can make advantage of PAE (Physical Address Extension). With PEA windows “supports” up to 8GB of RAM. At windows 2k3 server this option goes on by default at inserting for 4GB ram. This allows windows to make use of ALL the 4096MB’s. What doesn’t change is the kernel mode. Windows has a built-in maximum of 2GB for kernel mode. By using the /3GB switch the kernel mode even gets decreased to 1GB. Even with PAE and 8GB of memory the kernel mode doesn’t use more then 2GB (or 1GB with the /3GB switch on). This is why a Windows terminal server has a maximum of a couple of hundred users, even if it could use 32GB of ram, since the kernel mode wont use more then 2GB. Only solution to this problem is using x64. For your problem, just turn on PAE and its solved. You can turn on PAE by using the /PAE switch at boot.ini, you can also turn of DEP to decrease the amount of used memory mappings, but it will still use a few.