Hyper-V2012クラスターノードが2つのVMをサポートする必要があると思うときにサポートできないという状況があります。現在、96GBのRAMで遊んでいますが、47GBのVMを2つ実行したいと思っています(スタティックRAM)。それはホストのために2GBを残します、それは十分であると思われます。ただし、2番目のVMを実行できません。これは、ソフトウェアがメモリが不足していると文句を言っているためです。
次に、それぞれVMを46GBに減らしましたが、それでも2つのVMをサポートしません。ノードから「taskmgr」を実行すると、51GBが「使用中」で「44.9GB」が使用可能であると報告されます。 。46GBVMがホストパーティションで5GBのオーバーヘッドを発生させる理由がわかりません。実行中のプロセスを見ると、リストされているRAMは合計で500MB未満。
Hyper-Vに、2GBを除くすべてをVMの使用のみのために明示的に予約するように指示したいと思います。
さらに、ハイパーバイザーが5GBを「必要とする」理由を知ることはさらに良いでしょう。 Hyper-VがRAMの内部で何をしているのかを知る方法はありますか?または、Hyper-V 2012の新しい計算で、ホストが実際に必要とするRAM 2GBでは削減されていないため)はありますか?
編集-2014-02-14
4つの異なるHyper-VServer 2012r2ホストと2008r2を確認した後、非ページプールは物理的にインストールされたRAMとともに直線的に増加します。 CPUがAMDであるかIntelであるかは関係ありません。ホストがWindowsクラスターの一部であるかどうかは関係ありません。ホストがドメインに参加しているかどうかは関係ありません。そして、ホスト上で実行されているVMの数(またはそれらのVMが消費しているRAM)の量は関係ありません)。最後に、これは2012r1の動作でもあると考えています。これらの症状は、2012r2ホストがすべて2012r1であったときに遡ります。
すべての場合において、インストールされたRAM(GB単位)の量に0.0425を掛けると、失われるRAM(GB単位)の量がわかります非ページプールへ(それは非常に近い見積もりです。)
したがって、Microsoftがソフトウェアを修正するか、この動作が設計によるものであると公式に認めるまで、答えは、誰もが一般的に使用する計算(以下の回答に示されている)を使用し、上記の計算結果を追加して説明することです。 RAM非ページプールに負けます。( または、必要に応じて、ここに例を含む要約があります。 )
PS:私は「GB」を書いていることに注意することが重要だと感じていますが、私はWindowsが報告するものを使用しているだけです。 WindowsとRAMMapによって報告された数値はGB/KBではなく、実際にはGiB/KiBであるため、非ページプール計算の結果に1024を掛けて、RAMMapによって報告された「K」数値と比較します。
ハイパーバイザーの場合は300MB、最初のGBの場合は32 MB RAM各仮想マシンに割り当てられ、追加のGBごとにさらに8 MB RAM仮想マシンに加えて、ルートパーティションで実行されているホストオペレーティングシステム用に512 MB
一般的な経験則として、I/O仮想化、スナップショットファイルのサポート、子パーティション管理などのサービスを提供するために、ルートパーティションに少なくとも512MBのメモリを割り当てることを計画します。
300 + 32 +(45 * 8)= 692MB最初のVMの場合
両方のVMで692+ 32+(45 * 8)= 1084
経験則によると、合計1084 + 512 = 1596MB
したがって、これはハイパーバイザーの消費にすぎません。最初のVMがプロビジョニングされている場合でも、5 GB以上が使用されていることを考慮します。コマンドプロンプトでタスクリストの出力を確認し、RAMを消費するサーバープロセスを探すことをお勧めします。