This is a quick description on how to reduce OS memory on virtual Windows Server 2016 from 128 GB to 48 GB without changing VM configuration. This can be done with the command BCDEdit.exe which is somewhat described by Microsoft in the documentation on bcdedit and the documents "BCDEdit Command-Line Options" and "BCDEdit Options Reference". The tool is a default tool in Microsoft Windows and is placed in the directory "C:\Windows\System32\".
The name of the tool referes to Boot Configuration Data, which is described somewhat in an old MSDN Vista document BCD.docx. Boot Configuration Data is a firmware independant data store with boot data. The store is placed in the system partition.
Reducing memory available to the OS is sometimes done, when you have an application that is not using all available memory, but is licensed by the memory amount available to the OS. And this is sometimes made worse by a computer with way too much memory that can't be reduced by ridiculous agreements.
Before
System Information (msinfo32.exe) on the guest VM. All installed memory is available to the OS:
Reduce OS Memory
Calculation: The number needed for the command is the amount of removed memory. In this case 128 GB - 48 GB = 80 GB. As the number must be in MB the corection is 80 GB * 1024 MB/GB = 81920 MB.
Start console (cmd.exe) as Administrator. PowerShell does not work. Enter the command line:
bcdedit /set {current} removememory 81920
bcdedit
is shorthand onBCDEdit.edit
./set
is a option to BCDEdit described in BCDEdit /set.{current}
is a reference to the current boot entry.removememory
removes memory available to the Windows operating system.81920
is the amount of memory to remove from the OS in MB. See calculation above.
Reboot VM.
After
System Information on guest VM:
Task Manager on guest VM:
It shows both 128 GB and 48 GB even only 48 GB is available to the OS. This will confuse most operators and administrators.
Roll-Back
Start console as Administrator. And enter the command line:
bcdedit /deletevalue {current} removememory
Reboot VM.
And all the memory is available to the VM as shown by System Information.
Notes on System Configuration
Windows has the standard tool System Configuration where it looks like you also can reduce OS memory. Let me point out that this does not work as bcdedit /set removememory
but like bcdedit /set truncatememory
which is not as effective.
Disclaimer
This is not my own findings but given to me by the good colleague Ib Thornøe (LinkedIn)
No comments:
Post a Comment