Dynamic memory not released to host RRS feed

  • Question

  • 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:

    1.        Nova Application Installed
    2.        SQL Developer Tool is Configured (ODBC Connection established for Database communication)
    3.        FTPs communication allowed for File Transfer
    4.        McAfee Agent is configured (Virus Scanner)
    5.        Nimsoft Robot Agent Configured – Monitoring
    6.        Terminal Service
    7.        Enabled Multiple terminal sessions based on customer requirement
    8.        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.?


    Auditya N


    Thursday, February 19, 2015 6:56 AM


  • I am not really clear on the point of your question.

    Allocated RAM is what is currently in use / allocated to a VM out of the physical RAM pool.  It is Demand + Buffer.  The demand is based on the applications in the VM and what they think they need and how efficiently they return unused memory to the machine.  This has nothing to do with in-application paging (which happens a lot with Terminal Servers).

    So yes, the memory utilization is accurate in relation to physical RAM utilization.

    Dynamic Memory is about efficiency, not about over-allocation.  Hyper-V can never give VMs more RAM than is in the physical RAM pool.  The VMs can be configured to have more RAM than is in the physical RAM pool - but the VMs will hit the top of the pool and not be allowed to have any more.  There is no ballooning or paging to disk.

    So, you maximum allocated could go beyond what is possible.  But that would mean that your utilization would be artificially low if this was used in the calculation.

    Brian Ehlert
    Learn. Apply. Repeat.

    • Proposed as answer by Alex Lv Tuesday, March 10, 2015 1:35 AM
    • Marked as answer by Alex Lv Tuesday, March 10, 2015 1:35 AM
    Thursday, February 19, 2015 4:45 PM