私は VMware について全くの無知ですが、最近 ESXi 上に 4 台の VM をセットアップしました。VM のうち 3 台はリソースをあまり消費しません (あまり使用されないファイル サーバー、あまり使用されないドメイン ドメイン コントローラー、および VMware vMA ホスト)。もう 1 台はリソースを大量に消費します (私の小さなオフィスで 12 人が使用するターミナル サーバー)。
ターミナル サーバー VM は、ピーク時にかなり低速で実行されています。vSphere のパフォーマンス サマリーを見ると、CPU が 90% を超えて急上昇しているように見えます。ディスク レイテンシ グラフにも急上昇が見られ、時折 500 ミリ秒程度まで上昇します。
私は VMware でリソース割り当て設定を一切構成したことがなく、あまり忙しくない VM がリソースを必要としないときに、より忙しい VM が利用可能なリソースを使用できるようにするほど VMware は賢く動作するだろうと常に想定していました。しかし、サーバー全体の CPU チャートが 10% を超えることはなく、ディスクの待ち時間も 4 ミリ秒程度を超えることはないことから、これは当てはまらないようです。
つまり、VMware でリソース割り当てを構成する必要があるかもしれないということですが、この状況で何を構成すればよいのかよくわかりません。vCPU の数を増やすか、プロセッサ アフィニティを構成する必要がありますか? または、共有または予約機能を使用する必要がありますか? 基本的に、他の VM のリソースを完全に枯渇させたくはありませんが、ターミナル サーバーが、使用可能と思われるシステム リソースを使用できるようにする必要があります。
ご指導をいただければ幸いです。
答え1
ESXi では、vCPU は計算のために実際の CPU コア上のコアにマップされます。つまり、4 つのコアを持つシステムで 1 つの vCPU が構成された VM は、システムの容量の約 1/4 以上を使用することはできません。一般的に、VM を構成する vCPU が多すぎると (vCPU を追加するとオーバーヘッドが増えるため)、少なすぎると (ハードウェアの全容量を使用できないため) 望ましくありません。
あなたが説明したような単純なシナリオでは、リソース割り当てシステムやプロセッサ アフィニティをいじる必要はありません。デフォルトでは、ESXi は各 VM に公平なリソースを割り当てるシステムを使用し、構成されたリソースを使用して VM が取得するリソース数を計算します。そのため、リソース不足について心配する必要はありません。
ESXiのパフォーマンスについては学ぶべきことがたくさんありますが、まずはベストプラクティス適切なパフォーマンスを得るためにシステムを構成する方法を知りたい場合。
答え2
これは、ターミナル サーバー VM 側のリソースが不十分な場合である可能性があります。
- この特定の VM にどのようなリソースを割り当てましたか?
- ESXi ホストではどのようなリソースが利用できますか?
メモリの使用量が多すぎると、仮想メモリのページング/スワッピングが発生する可能性があります。これにより、ハイパーバイザに大きな影響を与えることなく、個々のターミナル サーバー VM のディスク I/O に影響する可能性があります。
ターミナル サーバーのメモリ使用量を確認します。可能であれば、メモリ使用量を増やします。CPU 使用率も評価します。リソースに余裕がある場合は、それに応じて調整します。