Dear Techies,
Ours is a small Hyper V virtual server infrastructure with three DELL power-edge physical hosts(Windows server 2012 Datacenter) and around 15 virtual machines running on top of it. The hosts are added to fail-over cluster. Each host has 95 GB RAM. All the VMs are running Windows server 2012 standard edition.
We have installed terminal services(TS licensing, TS connection broker, TS session host) in four VMs with the following dynamic memory settings:
Start-up RAM: 2048 MB
Minimum RAM: 2048 MB
Maximum RAM: 8192 MB
Below mentioned applications are configured in the server:
- Nova Application Installed
- SQL Developer Tool is Configured (ODBC Connection established for Database communication)
- FTPs communication allowed for File Transfer
- McAfee Agent is configured (Virus Scanner)
- Nimsoft Robot Agent Configured – Monitoring
- Terminal Service
- Enabled Multiple terminal sessions based on customer requirement
- BGinfo tool configured through group policy for customized desktop background
The average memory utilization in the terminal servers are 3.6 GB. As per dynamic allocation the maximum RAM requirement/allocation till date is 4GB. As seen in Hyper V console, the current RAM demand is 2300 MB and assigned memory is 2800 MB.
However, the earlier assigned RAM in the server is ballooned/faked to the VM as driver locked memory. This is by design. Despite the memory being released back to the host, the server still shows up the 4Gb which makes the memory utilization report from monitoring tools look 80% (3.2 GB out of 4 GB).
As a result, the memory utilization report is always based on the current dynamically allocated RAM and not calculated based on the maximum assigned RAM(8GB in this case). To make it clear: If the currently assigned RAM is 4Gb and utilization is 3.2 GB the utilization % is reported as 80%. However, if calculated in accordance with maximum RAM capacity of the server it would be 40% ((3.2/8)*100).
Is there any way to release the driver locked memory from the VM.?
Regards,
Auditya N