SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Windows Server 2012 以降の Hyper-V でゲスト OS に割り当てることができるメモリの把握

leave a comment

ちょいちょい調べなおすのでメモを。

Windows Server 2008 R2 までは、ホスト用に確保されるメモリについては、「384 + (30 * Physical Memory GB)」で固定となっていました。

この計算式は、HYPER-V 2008 R2 SP1 Best Practices (In Easy Checklist Form) に記載されており、設定を変更するためには、レジストリに設定を投入する必要がありました。

  • To determine minimum host memory reserve, follow these guidelines:
    • Use the following calculation:
      • 384 + (30 * Physical Memory)
      • For example: 384 + (30*48) = 1824MB min reserve recommendation on host with 48GB memory
    • To set memory reserve, change the following:
      • Registry Key:
        • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\MemoryReserve
          • REG_DWORD
          • Value is set in Decimal, and is in megabytes (e.g. 4096)
          • Requires a reboot to take effect
        • 2-4 GB Minimum on average

Windows Server 2012 以降は Hyper-V Dynamic Memory Overview で記載されていますが、メモリ予約の計算が改善されたことで、MemoryReserve のレジストリの設定は非推奨 (機能はするようですが) となり、基本的に手動での調整はせず管理は OS に任せることが推奨となりました。

前述のチェックリストの Windows Server 2012 / R2 版が Windows Server 2012 Hyper-V Best Practices (In Easy Checklist Form) / Windows Server 2012 R2 Hyper-V Best Practices (In Easy Checklist Form) となりますが、このリストからも MemoryReserver についての記載は省略されています。

仮想マシンに割り当てることができるメモリサイズについては、Windows Server 2012 R2 で実行されている仮想マシンが起動しない に記載されている「Hyper-V Dynamic Memory Balancer\Available Memory」のパフォーマンスモニターから確認することができます。

64GB のメモリ環境で OS を起動した直後では次のようになっており、59.16 GB、ゲスト OS で割り当てることが可能です。

image

2008R2 までの計算式では 64 GB の環境では「384 + (30*64) = 2,304 MB」となりますが、これより多いサイズ、ホスト用の予約として確保されているようですね。

検証環境でメモリを最大限使用する場合、このパフォーマンスモニターの項目を確認することで、メモリを最大限割り当てることができるかと。

Share

Written by Masayuki.Ozawa

12月 26th, 2024 at 9:28 am

Posted in Hyper-V

Tagged with

Leave a Reply