Finally I got 8 GB of RAM on my laptop. That’s a great thing, especially that I have free licenses to pretty much whatever Microsoft has as x64, except that I’m married and this is not quite my laptop, but my wife’s. If you ask anyone on the planet, you are to find out that she has all the brains and the beauty in our home; after all, those who can do, will do, and those who cannot do, will teach.
To cut it short: I have Windows 7 32-bit installed on my laptop and I want to access all the RAM, without installing Windows 7 x64. How hard can it be? Just run the following at the command prompt:
BCDEdit /set PAE forceenable
Of course, the command executes successfully, and after the reboot I’ll be able to access all the memory, right? Wrong.
Okay, Google is my friend and I search how to access all the memory on a x86 platform. So I get some interesting posts:
http://msdn.microsoft.com/en-us/library/aa366778.aspx – this article tells me that the absolute maximum memory that I can access is 4 GB in my case. Of course, they must be wrong, so let’s try another post that actually helps me. After all, they are Microsoft, what do they know about Windows?
http://blogs.technet.com/b/markrussinovich/archive/2008/07/21/3092070.aspx – there’s this guy, Mark Russinovich that explains at a very technical level why I cannot access more than 4 GB of memory on my machine. Very misleading title of the article, and of no help for my caseJ.
http://www.unawave.de/windows-7-tipps/32-bit-ram-barrier.html?lang=EN – finally! So I can actually do itJ.
- You can enable access to more than 4 GB; it’s a licensing issue, not an architectural issue. But because you can does not mean that you should
- If you do it, chances are that your apps are not aware of how smart and sexy you are – this is definitely true for SQL Server. So, if you want to use more than 4 GB for SQL Server (say, 6 GB, as in my case), you need to do the following:
Enable the Use AWE to allocate memory checkbox, and specify the memory to use (6X1024 MB = 6144 MB) in the Maximum Server Memory text field. That’s it.
One word of caution: I did not test this, so I have no idea whether is actually working or not; I advise you to do the same thing I do: simply switch to x64 architecture, especially that we’re talking servers and licensing issues here.
Quick edit: you do the same by using sp_configure sproc. You simply neeed to enable the advanced options, set the AWE Enabled to 1, and set the memory for Max Server Memory.