How to troubleshoot unexpected memory limitations?

As you know, there are limitations on the available memory depending on the version of the operating system . These limitations may be caused by BIOS, hardware or instruction set architectures (x86,x64) too. Sometimes really hard to predict and troubleshoot them . Everything looks good, but doesn’t work. Let’s analyze basic steps that I have used to solve issues in different situations.

– Check memory limits for supported Windows releases

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx

Check Memory Mode in BIOS (Independent, Channel Mirroring, Lockstep, Sparing). For example, Channel Mirroring decreases your memory size by default. To use the full size of memory you should check that Memory mode is independentbios_memory_mode

– During POST, notice additional information about memory testing. Full size of memory must be OK. For example, you have 4 Gb installed memory and test shows «4096MB OK» if no problems with BIOS settings or hardwarememory_post_test

– Sometimes the reason is hardware. I had a problem on other Intel SR1670HV server system “DIMM A1 and DIMM A2 are disabled by BIOS”. Unfortunately, it’s mainboard’s bug (upgrading firmware and replacing DIMMs don’t resolve the issue)

– If your OS uses unoriginal boot configuration , check Maximum Memory option at msconfig >boot > advanced optionsmsconfig_memory

– I’ve had a very strange memory limitiation in my OS (Server 2008 R2 SP1 Ent). After server shutdown only 4 gb of 48 gb (6 x 8 Gb) were usable. I tried to change BIOS and OS settings plus checked firmware version. Everything was fine. I did not realize one thing. Why is only 4 gb instead 8 gb? If it was problem with DIMMs I had to get 8 x X Gb of memory. If it was problem with BIOS , I had to receive an information during POST test. So, something happened bad with OS after shutdown. I decided to change server edition using DISM utility (anyway, I had to change it because of VM’s amount) Curiously enough, changing server edition is solution. (I’m sure, simple re-activation can solve too) . To re-activate or change edition use PS and DISM.

Run Powershell. Use DISM /online /Get-CurrentEdition to get  your editionget-currentedition

Then paste DISM /online /Get-TargetEditions to view possible target editions
get-targeteditions

Finally, to initiate an upgrade, run:

DISM /online /Set-Edition:<edition ID> /ProductKey:___

For example, I have an Enterprise version and want to upgrade to Datacenter.

Important: You have to use KMS key before activation with own key. Get KmS key using this link  http://technet.microsoft.com/en-us/library/ff793421.aspx

DISM /online /Set-Edition:ServerDatacenter /ProductKey:74YFP-3QFB3-KQT8W-PMXWJ-7M648

DISM will reboot server twice. Very strange memory limit has gone away.

Notice: After the reboot you should change the product key and activate system again.