VMware 仮想マシンのパフォーマンス問題に関する包括的な概要
ハードウェアやソフトウェアの問題により、仮想マシンのパフォーマンスが低下することがあります。これにより、仮想環境の利便性や俊敏性が損なわれる可能性があります。このブログ記事では、仮想マシンの動作が遅くなった場合に、VMware仮想マシンのパフォーマンスを向上させる方法について解説します。仮想マシンのパフォーマンス低下につながる最も一般的な問題点と、その解決策についてご紹介します。
VMのパフォーマンスを向上させる理由
診断を実施し、VMのパフォーマンスを向上させる主な理由を見てみましょう:
- 仮想マシンのパフォーマンスが、別のホスト上の同一VMのパフォーマンスよりも遅い。
- アプリケーションの実行速度が本来あるべき速度よりも遅い。しかし、VMを別のホストに移行すると、アプリケーションのパフォーマンスは正常になる。
- アプリケーションの起動に非常に時間がかかる。
- 実行中のアプリケーションが応答しません。
- CPU、メモリ、またはディスクの使用率が100%になっています。
CPUとメモリ
ハードウェアリソースの不足は、VMのパフォーマンス低下の最も一般的な原因の一つです。VMに十分なCPUリソースを割り当てていない場合、VM内のソフトウェアの実行が遅くなり、遅延が生じる可能性があります。これを解決するには、VMが使用するCPUコア数を増やすか、仮想プロセッサを追加するように設定してください。 また、コア数やキャッシュ容量が少なく、クロック周波数も低い古いプロセッサを使用している場合は、ホストマシンのハードウェアをアップグレードすることも検討してください。
仮想マシンのRAM容量を設定する際は、その容量がVMにとって十分であることを確認してください。同時に、ホストマシンにも十分なRAMが残っている必要があります。 仮想マシンに十分なメモリを割り当てないと、ゲストOS(オペレーティングシステム)がスワップファイルを多用し、仮想マシンの全体的なパフォーマンスが低下します。逆に、仮想マシンに大量のメモリを割り当ててホストOSに十分なメモリを残さないと、ホストOSがスワップファイルを使用することになります。これにより、OSやアプリケーションのパフォーマンスが低下します。さらに、この場合は仮想マシンのパフォーマンスも低下します。 VMに過剰なメモリを割り当てすぎず、同時にホストOS用に一定のメモリを確保してください。常にホストOSに十分なメモリを割り当てるようにしてください。
お使いのOSやアプリケーションのシステム要件を確認してください。 例を考えてみましょう。ホストマシンには8 GBのメモリがあり、 ESXi 7.0 またはWindows 10( VMware Workstation)が動作しています。このホストマシン上でWindows Server 2019の仮想マシンが実行されています。Windows Server 2019の仮想マシンに4 GBのRAMを割り当てた場合、ホストOSには4 GBのRAMが残ります。これは、ホストOSとゲストOSの両方が適切に動作するには十分な量です(リソースを消費する追加のアプリケーションを実行しない場合)。 この比率は 1:2 (4 GB/8 GB) であり、1/2-1=-0.5 が現在の MEM overcommit avg の値です。Windows Server 2019 を実行している VM に 2 GB の RAM を割り当てた場合、この状況では VM のパフォーマンスが低下します。 Windows Server 2019 VMに6 GBのRAMを割り当てると、ホストマシンのメモリが不足し、その結果、物理マシンと仮想マシンの両方の動作が遅くなります。
仮想マシン上でデータベースなどの負荷の高いアプリケーションを実行する場合は、VMの構成を調整し、それに応じてCPUとメモリのリソースを追加してください。
メモリのオーバーコミットメント とは、リソースの割り当て総量が容量を超えている状態です。RAMが8 GBのホストで、各VMに2 GBのRAMを使用するよう構成したVMを5台実行すると、メモリがオーバーコミットされているため、すべてのVMとホストマシンのパフォーマンスが低下する可能性があります(すべてのVMがメモリを集中的に使用している場合)。一部のVMが実行中でも負荷が軽い場合、ESXiがメモリ使用率を最適化するため、主に負荷の高いVMがメモリを使用します。メモリのオーバーコミットメントは、テスト環境では有効です。
また、メモリバルーニングとその機能の構成を確認し、未使用のメモリをVMから回収して、物理メモリを効率的に使用してください。場合によっては、VMがスワップ用にディスクを使用する必要があるときに、この機能がVMのパフォーマンスに影響することがあります。
CPUのオーバーコミットメント 。VMwareはリソースを合理的に使用するための技術を提供しており、ホスト上の物理CPUコア数を超える数の仮想プロセッサをVMに割り当てることができます。CPUのオーバーコミットメント値は、VMに割り当てられた仮想プロセッサ数と、ホスト上の物理CPUコア数の比率です。値が3:1であれば、心配する必要はありません。値が5:1の場合、VMのパフォーマンスは低下します。CPUのオーバーコミットメント値が6:1以上の場合、VMの動作が遅くなり、多くの問題が発生する可能性があります。
CPUとメモリの問題を解決するにはどうすればよいですか?
仮想マシンを実行する物理マシンのハードウェアをアップグレードし、RAMを増設することを検討してください。ホストとゲストのオペレーティングシステムがスワップファイルを使用しないよう、十分なメモリを確保してください。メモリのオーバーコミットメントは避けてください。
CPUの電源管理機能がVMのパフォーマンスを低下させる場合があります。無効にしてみてください。
ホスト上の空きCPUリソースとメモリリソースを確認してください。
ESXiで、サーバーが過負荷になっているかどうかを確認するには、コマンドラインで次のコマンドを実行してください。
esxtop
ロードアベレージ の値を確認してください。
1.0 – CPUが完全に使用されていることを意味します
0.5 – CPUが半分(50%)使用されていることを意味します
2.0 – CPUが2倍の過負荷状態であり、対策が必要であることを意味します
表示を変更するには、次のキーを押してください: c – CPU メトリクス(デフォルトで表示されます)、 m – メモリ、 n – ネットワーク、 d – ディスク。スペースキーを押すと表示値が更新されます(値は 5 秒ごとに自動的に更新されます)。ヘルプを表示するには h を、終了するには q を押してください。
ESXi でのメモリ使用状況を確認するには、 MEM overcommit avg パラメータを確認してください。 MEM overcommit avg の値は、要求されたメモリと利用可能なメモリの比率から 1 を引いた値です。このパラメータの推奨値は 0 以下です。
Linux または Windows にインストールされた VMware Workstation を使用して仮想マシンを実行する場合は、OS で利用可能な標準的なシステム監視ツールを使用してください。
ゲスト OS での CPU/メモリ使用状況を確認してください。一部のアプリケーションは正常に動作せず、すべての CPU(CPU コア)リソースを消費している可能性があります。実行中のプロセスを確認し、CPU に負荷をかけているプロセスを見つけ出してください。ホスト上の物理プロセッサの温度も確認してください。温度が高くなりすぎると(80 °C 以上)、パフォーマンスの問題を引き起こし、プロセッサにリスク(プロセッサが損傷する可能性がある)をもたらします。
ハードウェアのアップグレード – ホストにより高性能な CPU またはプロセッサを追加します。VM の構成を確認してください。VM の仮想プロセッサ数が必要以上に多い場合は、VM の仮想プロセッサ数を減らして、ホストのリソースを解放してください。
VMware vSphere では、DRS クラスタ (分散リソーススケジューラ) を使用して、過負荷状態の ESXi ホストから、ハードウェアリソースに余裕のある ESXi ホストへ VM を移行することができます。
ディスクに関する問題
ストレージシステムのパフォーマンスが低下すると、そのストレージシステムに仮想ディスクを保存している仮想マシンのパフォーマンスも低下します。ストレージのレイテンシは、仮想マシンのパフォーマンスにとって極めて重要です。仮想マシンの保存には、SSD(ソリッドステートドライブ)の使用をお勧めします。SSDを使用できない場合は、7200 RPMまたは10000 RPMのHDD(ハードディスクドライブ)を使用してください。 5400 RPMのハードディスクドライブは、パフォーマンスが著しく低下します。SASインターフェースを備えたディスクの使用が推奨されます。
VMware Workstationを使用する場合は、上記の推奨事項を考慮した上で、外付けSATA(eSATA)またはUSB 3.0ディスクに仮想マシンを保存できます。 仮想マシンの電源を切るまでは、外部ディスクを取り外さないでください。
本番環境では、容量拡張不可または事前割り当て済みのシックディスクを使用してください。イアガーゼロ化された 厚めに用意された ディスクは、最初の書き込み操作において高速です。
HDDを使用してVMを保存する場合は、この物理ディスクドライブまたはアレイのデフラグを行い、仮想マシンの設定で仮想ディスクのデフラグも実行してください。パーティションを使用して、ディスクの断片化を軽減してください。 あるパーティションにオペレーティングシステムをインストールし、別のパーティションにアプリケーションで使用されるファイル(データベースなど)を保存します。
HBA(ホストバスアダプタ)のファームウェアが最新かどうかを確認してください。 サーバー上の HBA のファームウェアを更新してください。
ディスクの状態を確認してください。ディスクとファイルシステムの診断を実行してください。ディスクが破損している場合は、直ちにディスクを交換してください。
インターフェース(SAS、SATA)ケーブルを確認してください。
ディスクの暗号化はオーバーヘッドによりパフォーマンスを低下させます。VM にとって暗号化が必須でない場合は、VM ファイルを暗号化されていないストレージに移動するか、ディスクの暗号化を無効にしてください。
より高いパフォーマンスと信頼性を提供する、独立した(ハードウェア)RAID コントローラを使用してください。
VM内のディスクに空き容量があることを確認してください。ディスク容量が不足していると、オペレーティングシステムやアプリケーションが一時ファイルを書き込めなくなるため、パフォーマンスが低下します。
VMを、過負荷になっていない別のディスクまたはディスクアレイに移行できます。VMware vSphereでは、DRSおよびStorage DRSの使用を検討してください。同じLUNまたはデータストア上で実行中のVMの数を減らしてください。
スナップショット
仮想ディスクのスナップショット は、仮想ディスクのパフォーマンスを低下させます。 各スナップショットは、仮想ディスクの追加のデルタVMDKファイルを生成します。コピーオンライト(CoW)メカニズムが使用されます。各デルタVMDKには、親VMDKファイルとのデータの違い(変更ログ)が含まれており、VMはVMディスクとやり取りする際にこのデータをすべて読み取ります。その結果、同じ物理ディスク上の複数の仮想ディスクファイルからデータが読み取られることになり、VMのパフォーマンスが低下します。 同様の理由から、VMware Workstation では VM に分割 VMDK ファイルを使用しないでください(このオプションは、4 GB を超えるファイルをサポートしていない古いファイルシステム向けに用意されています)。スナップショットの数が増えるにつれて、ディスクへの負荷が高まります。 スナップショット は通常、一時的な目的(たとえば、バックアップジョブ中のデータコピーや、VM 内でのアプリケーションのインストールやテストなど)に使用されます。 スナップショットはできるだけ早く削除またはコミットしてください。
VMware Workstation では、VM をシャットダウンし、VMware Workstation を終了した後、既存のメイン VMDK ファイルのパスと新しい仮想ディスクファイルのパスを指定するコマンドを実行する必要があります:
"C:Program Files (x86)usernameVMware Workstationvmware-vdiskmanager.exe" -r
"D:VMsVM-foldervm-name.vmdk" -t 0 "D:VMsVM-folderNewDisk.vmdk"
その後、VM を再構成して新しい仮想ディスクを使用するように設定するか、新しい VM を作成して、新しい統合仮想ディスクを使用するように設定してください。
ESXi では、次のコマンドを実行してスナップショットを削除します:
vmware-cmd path_to_vmx_file removesnapshots
または
vim-cmd vmsvc/snapshot.removeall VMID
次のコマンドで VMID を確認できます:
vim-cmd vmsvc/getallvms
分割された VMDK ファイルが使用されている場合は、それらをマージしてください。 次のコマンドを使用して、VMware WorkstationがインストールされているWindowsマシンで実行してください。
"C:Program Files (x86)VMwareVMware Workstationvmware-vdiskmanager.exe" -r splitdisk.vmdk -t 0 mergeddisk.vmdk
パフォーマンスへの影響が大きいデータは、より高速なディスクに保存してください。
VMware Tools
ゲストOSにVMware Toolsがインストールされていることを確認してください。VMware Toolsは、VMのパフォーマンスとユーザーエクスペリエンスを向上させるために使用するドライバーとユーティリティのセットです。VMware Toolsをインストールすると、グラフィックスのパフォーマンスが向上します。マウスは同期され、遅延なく動作します。VMware Toolsを使用すると、VMを全画面モードでより高いパフォーマンスで使用できます。VMware Toolsがインストールされているかどうかを確認してください。
Windowsでは、時計の近くにある通知領域のVMware Toolsアイコンをクリックするか、C:Program FilesVMwareVMware Tools(既定のディレクトリです)に移動して、次のコマンドを実行してください。
VMwareToolboxCmd.exe -v
Linuxでは、コンソールで次のコマンドを実行してください。
vmware-toolbox-cmd -v
ESXiのコマンドラインでVMログを読み取り、VMゲスト上のVMware Toolsのバージョンを確認してください。
grep toolbox /vmfs/volumes/datastore/vm_name/vmware.log
または
grep build- /vmfs/volumes/datastore/vm_name/vmware.log
VMware vSphere Clientで、VM上で実行されているゲストOSにVMware Toolsがインストールされているかどうかを確認してください。VMware Toolsに関する情報は、VMのSummaryタブに表示されます(ステータスとバージョン)。
ネットワークの問題
ESXiホストがSAN(ストレージエリアネットワーク)やNAS(ネットワーク接続ストレージ)などのストレージに接続されている場合は、ネットワーク速度が十分であり、ネットワークが過負荷になっていないことを確認してください。
高いパフォーマンスを実現するため、vSphereではESXiの管理ネットワークネットワーク、vMotion ネットワーク、およびストレージネットワークを分離して使用してください。
仮想スイッチを使用するESXiホストでは、NICチーミング(リンクアグリゲーション)を構成してください。
既存のネットワーク帯域幅が要件を満たすのに不十分な場合は、ネットワークのアップグレードを検討してください。たとえば、既存の1 Gビット機器の代わりに、5 Gビットまたは10 Gビットのネットワークアダプター、スイッチ、ルーターを導入してください。
ウイルス対策
ホスト上のウイルス対策ソフトウェアが仮想ディスクファイルをスキャンしていないことを確認してください。これらのファイルをスキャンすると、VMのパフォーマンスが低下する可能性があります。VMディレクトリ内のVMDKファイルをウイルス対策スキャンの対象から除外できます。
ホストOSおよびゲストOSで実行中のオペレーティングシステムの状態を確認してください。ウイルスやその他のマルウェア、またはランサムウェアが存在しないことを確認してください。
各VMのゲストOSにウイルス対策ソフトウェアをインストールする代わりに、ESXiホスト上でVMware vShieldと連携する専用のウイルス対策ソリューションの使用を検討してください。この方法を使用すると、より高いパフォーマンスを実現でき、大規模な仮想環境にも適しています。vShieldを使用する場合は、このソフトウェアを適切に構成してください。構成が不適切だと、VMのパフォーマンスが低下する可能性があります。.
Hyper-V に関連する問題
Windows ホストに Hyper-V 機能 がインストールされている環境で、VMware Workstation 15.5 以降(Windows ホスト上で VMware 仮想マシンの実行をサポートするバージョン)を使用する場合、VMware 仮想マシンのパフォーマンスが低下する可能性があります。Hyper-V ロールがインストールされている場合、Hyper-V は Intel VT-x や AMD-V などの CPU 仮想化機能を直接使用しますが、特権モードで実行する必要がある Virtual Machine Monitor (VMM) を搭載した VMware Workstation では、これらの機能を利用できません。 VMware WorkstationのVMMは、互換性の理由から(特権モードではなく)ユーザーモードまたはULMモードで実行されます。これは、Hyper-VがCPUのハードウェア仮想化機能を使用している場合、VMMがそれらの機能にアクセスできないためです。この場合、VMMはVMMとCPUの間に追加のレイヤーとして機能するMicrosoftのWHP APIを使用することになり、VMware仮想マシンのパフォーマンスが低下します。
ホストの Windows マシンから Hyper-V および”仮想化ベースのセキュリティ”などの関連機能をアンインストールしてください。その後、VMware Workstation の VMM は特権モードで実行され、CPU の仮想化機能と直接連携して高いパフォーマンスを発揮します。この解決策により、VMware 仮想マシンのパフォーマンス低下の問題を解消できます。
VM パフォーマンスの監視
VM パフォーマンスの監視は、過負荷や関連するパフォーマンスの問題を検出するために広く使用されている方法です。VM パフォーマンスの監視は、原因の特定に役立ちます。 仮想マシンのパフォーマンスは、ゲストOS内部ではなく、ホストレベルで監視するようにしてください。ゲストOSは、動的リソース割り当てなどの仮想化機能を認識していないため、誤ったデータを表示する可能性があります。VMwareはホストレベルのカウンターを提供しています。これらのカウンターは正確な情報を提供し、仮想マシンのパフォーマンス監視に使用されます。VMwareは、仮想マシン内部でパフォーマンス情報がどのように収集されるかを把握した上で、仮想マシン専用のカウンターライブラリを開発しました。これにより、WindowsゲストOSでPerfmonユーティリティを使用することで、仮想マシンのパフォーマンスに関する正確な情報を確認できるようになります。 VMのパフォーマンス監視を行うには、ゲストOSにVMware Toolsをインストールする必要があります。
VMware vSphere Clientで消費されたハードウェアリソースを確認するには、仮想マシンを選択し、”Monitor”タブを開き、” Performance > Overview or Performance > Advanced “を選択して、グラフやその他の情報を表示します。 ” Overview “ページでは、CPU、メモリ、ネットワーク、およびストレージ(空き容量、使用容量、入出力パフォーマンス)の利用状況を、リアルタイムおよび前日、前週、前月、前年、またはカスタム期間ごとに確認できます。これらのオプションは、このページにある 2 つのドロップダウンメニュー( “Period” および “View” )から選択します。 
仮想マシンのCPU、仮想マシンのメモリ、およびゲストメモリの使用状況に関する追加情報を表示するには、UtilizationタブでMonitorをクリックします。
同様に、vSphere ClientでESXiホストまたはクラスターを選択後、使用済みおよび使用可能なリソースをリアルタイムで、また指定した期間について監視できます。
結論
このブログ記事では、VMパフォーマンスの問題に関する主な注意点と、仮想マシンのパフォーマンス改善のための推奨事項を説明しました。十分な性能を備えたハードウェアを用意し、メモリの過剰割り当てを避け、ソフトウェアを適切に構成する必要があります。VMパフォーマンスの監視を利用して、VMのパフォーマンスが低下する原因を検出してください。
ディスクの損傷は、仮想マシンのパフォーマンス低下を引き起こす最も危険な問題です。仮想マシンのパフォーマンスが低下するだけでなく、データを失う可能性もあります。データ損失を防ぐため、VMwareのデータバックアップを定期的に実行してください。VMwareのバックアップ向けのNBRをご利用ください。NBRは、VMware vSphere 7.0に対応し、バックアップ速度と信頼性の向上に役立つ多くの便利な機能を備えた汎用データ保護ソリューションです。


