ハードウェアとソフトウェアの問題は、時にはVMのパフォーマンス低下につながります。これにより、仮想環境の利便性と柔軟性が低下する場合があります。遅いVMに直面した場合のVMware VMパフォーマンスを向上させる方法について学ぶために、このブログ投稿を読んでください。VMパフォーマンスの劣化につながる最も一般的な問題と、可能な修正方法について学んでください。
改善理由を改善する理由VMパフォーマンス
主な診断を実行してVMパフォーマンスを向上させる理由を見てみましょう:
- 仮想マシンのパフォーマンスが別のホスト上の同一のVMのパフォーマンスよりも遅い場合があります。
- アプリケーションの実行が遅くなることがあります。ただし、VMを別のホストに移行すると、アプリケーションのパフォーマンスは正常です。
- アプリケーションの起動に多くの時間がかかります。
- 実行中のアプリケーションが応答しないことがあります。
- CPU、メモリ、またはディスクの使用率が100%です。
CPUとメモリ
不十分なハードウェアリソースは、VMのパフォーマンス低下の最も一般的な原因の1つです。VMに十分なCPUリソースを提供しない場合、VM内のソフトウェアが遅れて実行される可能性があります。これを修正するには、VMをより多くのCPUコアを使用するように設定するか、仮想プロセッサを追加します。また、古いプロセッサーを持つホストマシンのハードウェアをアップグレードすることも検討してください。それはコア数、キャッシュ、および周波数が低い可能性があります。
仮想マシンのRAMの量を設定する際は、そのRAMがVMにとって十分であることを確認してください。同時に、ホストマシンにも十分なRAMが必要です。VMに十分なメモリを提供しないと、ゲストOS(オペレーティングシステム)はスワップファイルを大量に使用し、全体的なVMのパフォーマンスが低下します。VMに多くのメモリを割り当て、ホストOSに十分なメモリを残さないと、ホストOSがスワップファイルを使用します。これによりOSとアプリケーションのパフォーマンスが低下します。さらに、この場合にはVMのパフォーマンスも低下します。VMにあまりにも多くのメモリを割り当てず、同時にホストにもメモリを残してください。常にホストに十分なメモリを提供してください。
仮想マシンでデータベースなどの重いアプリケーションを実行する場合は、VMの構成を調整し、CPUとメモリリソースを追加してください。メモリオーバーコミットメントは、合計のリソース割り当てが容量を超える状況です。たとえば、8 GBのRAMを搭載したホストがあり、2 GBのRAMを使用するように構成された5つのVMを実行している場合、すべてのVMとホストマシンはメモリがオーバーコミットされているため(すべてのVMがメモリを集中的に使用している場合)、パフォーマンスが低下する可能性があります。一部のVMが実行されているが、それらが軽く負荷がかかっている場合、ESXiはメモリの利用率を向上させるため、メモリは主に負荷のかかっているVMによって使用されます。メモリのオーバーコミットメントはテスト環境で意味をなします。また、メモリバルーニングとこの機能の構成を確認して、VMから未使用のメモリを取り戻し、物理メモリの効率的な利用を実現してください。この機能は、VMがスワップにディスクを使用する必要がある場合に、VMのパフォーマンスに影響を与える場合があります。
メモリの過剰割り当ては、総リソース割り当てが容量を超える状況です。たとえば、8 GBのRAMを搭載したホストがあり、2 GBのRAMを使用するように構成された5つのVMが実行されている場合、すべての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
負荷平均load averageパラメータを確認してください。
1.0 – CPUが完全に使用されていることを意味します
0.5 – CPUが半分使用されていることを意味します(50%)
2.0 – CPUが2倍に過負荷されており、対策を取る必要があります
ビューを変更するには、以下のキーを押してください:c – CPUメトリクス(デフォルトで表示されます)、m – メモリ、n – ネットワーク、d – ディスク。表示される値を更新するにはスペースキーを押してください(値は自動的に5秒ごとに更新されます)。ヘルプにはh、終了にはqを押してください。
VMware Workstationを使用する場合、上記の推奨事項を考慮して外部SATA(eSata)またはUSB 3.0ディスクにVMを保存できます。仮想マシンの電源を切るまで外部ディスクを切断しないでください。本番環境では、非増加可能または事前割り当てされた厚いディスクを使用してください。Eager-zeroed 厚いプロビジョニングディスクは、最初の書き込み操作に対して高速です。VMを保存するためにHDDを使用する場合、この物理ディスクドライブまたはアレイをデフラグメンテーションし、仮想マシンの設定で仮想ディスクをデフラグメンテーションしてください。ディスクの断片化を減らすためにパーティションを使用してください。1つのパーティションにオペレーティングシステムをインストールし、アプリケーション(たとえば、データベース)が使用するファイルを別のパーティションに保存してください。
HBA(ホストバスアダプタ)のファームウェアが最新かどうかを確認してください。サーバ上のHBAのファームウェアを更新してください。
ディスクの健康状態を確認してください。ディスクとファイルシステムの診断を実行してください。ディスクが破損している場合は、すぐにディスクを交換してください。
インターフェース(SAS、SATA)のコードをチェックしてください。
ディスクの暗号化はオーバーヘッドによってパフォーマンスが低下します。暗号化がVMにとって重要でない場合は、VMファイルを暗号化されていないストレージに移動するか、ディスクの暗号化をオフにしてください。高いパフォーマンスと信頼性を提供する独立した(ハードウェア)RAIDコントローラを使用してください。
VM内のディスクに十分な空き容量があることを確認してください。ディスクに十分な空き容量がないと、オペレーティングシステムとアプリケーションが一時ファイルを書き込めないため、パフォーマンスが低下します。
ストレージシステムの低性能は、そのストレージシステムに保存されている仮想ディスクを持つ仮想マシンの低性能を引き起こします。ストレージの待ち時間はVMの性能に影響を与えます。仮想マシンを保存するためにSSD(ソリッドステートドライブ)を使用してみてください。SSDを使用できない場合は、7200 RPMまたは10000 RPMのHDD(ハードディスクドライブ)を使用してください。5400 RPMのHDDは追加で低性能を提供します。SASインターフェースを備えたディスクの使用が推奨されます。
VMware Workstationを使用している場合は、上記の推奨事項を考慮して、外部SATA(eSata)またはUSB 3.0ディスクにVMを保存できます。仮想マシンの電源を切るまで外部ディスクを切断しないでください。
本番環境では、非増大または事前割り当ての厚いディスクを使用してください。Eager-zeroed 厚いプロビジョンディスクは、最初の書き込み操作において高速です。
VMを保存するためにHDDを使用している場合は、物理ディスクドライブまたはアレイのデフラグメンテーションを実行し、仮想マシンの設定で仮想ディスクのデフラグメンテーションを実行してください。ディスクの断片化を減らすためにパーティションを使用してください。1つのパーティションにオペレーティングシステムをインストールし、別のパーティションにアプリケーションが使用するファイル(たとえば、データベース)を保存してください。
HBA(ホストバスアダプタ)のファームウェアが最新かどうかを確認してください。サーバー上のHBAのファームウェアを更新してください。
ディスクの健康状態を確認してください。ディスクとファイルシステムの診断を実行してください。ディスクが破損している場合は、すぐにディスクを交換してください。
インターフェース(SAS、SATA)ケーブルを確認してください。
ディスクの暗号化によるオーバーヘッドによってパフォーマンスが低下することがあります。VMのファイルを暗号化がVMにとって重要でない場合は非暗号化のストレージに移動するか、ディスクの暗号化をオフにしてください。
高いパフォーマンスと信頼性を提供する独立(ハードウェア)RAIDコントローラーを使用してください。
VM内のディスクには十分な空き容量があることを確認してください。ディスクの空き容量が不足していると、オペレーティングシステムやアプリケーションが一時ファイルを書き込めないため、パフォーマンスが低下します。
VMを過負荷になっていない別のディスクやディスクアレイに移行することができます。VMware vSphereでは、DRSおよびストレージDRSの使用を検討してください。同じLUNやデータストアで実行されているVMの数を減らしてください。
スナップショット
仮想ディスクのスナップショットは仮想ディスクのパフォーマンスを低下させます。各スナップショットは仮想ディスクの追加のデルタVMDKファイルを生成します。コピー・オン・ライトのメカニズムが使用されます。各デルタVMDKには、親VMDKファイルとのデータの違い(変更ログ)が含まれ、VMはVMディスクとやり取りする際にこのデータをすべて読み込みます。その結果、同じ物理ディスク上の複数の仮想ディスクファイルからデータが読み取られ、これによりVMのパフォーマンスが低下します。同じ理由で、VMware WorkstationのVMには分割されたVMDKファイルを使用しないでください(このオプションは4GBを超えるファイルをサポートしていない古いファイルシステム向けに作成されています)。スナップショットの数が増えるにつれてディスクの過負荷が増加します。スナップショットは通常、一時的な目的で使用されます(たとえば、バックアップジョブ中にデータをコピーしたり、VM内でアプリケーションをインストールまたはテストしたりする場合など)。スナップショットはできるだけ早く削除またはコミットしてください。
VMware Workstationでは、VMをシャットダウンし、VMware Workstationを閉じ、既存のメインVMDKファイルへのパスと新しい仮想ディスクファイルへのパスを定義するコマンドを実行する必要があります:
“C:\Program Files (x86)\username\VMware Workstation\vmware-vdiskmanager.exe” -r
“D:\VMs\VM-folder\vm-name.vmdk” -t 0 “D:\VMs\VM-folder\NewDisk.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)\VMware\VMware Workstation\vmware-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 Files\VMware\VMware Tools\(これはデフォルトのディレクトリです)に移動して次のコマンドを実行します:
VMwareToolboxCmd.exe -v
Linuxでは、コンソールで次のコマンドを実行します:
vmware-toolbox-cmd -v
ESXiコマンドラインでVMログを読み取ることで、VMゲスト上のVMware Toolsのバージョンを確認してください。
/vmfs/volumes/datastore/vm_name/vmware.log
または
/vmfs/volumes/datastore/vm_name/vmware.log
VMware vSphere Clientで、VM上で実行されているゲストOSにVMware Toolsがインストールされているかどうかを確認します。VMware Toolsに関する情報は、VMの概要タブに表示されます(ステータスとバージョン)。
ネットワークの問題
ESXiホストがSAN(Storage Area Network)やNAS(Network Attached Storage)などのストレージに接続されている場合は、ネットワーク速度が十分であり、ネットワークが過負荷になっていないことを確認してください。
高性能を実現するために、vSphereでESXi管理ネットワーク、vMotionネットワーク、およびストレージネットワークを別々に使用する必要があります。
ESXiホストでNICチーミング(リンク集約)を構成してください仮想スイッチを使用する場合。
既存のネットワーク帯域幅が要件を満たさない場合は、ネットワークのアップグレードを検討してください。たとえば、既存の1-Gbit機器の代わりに5-Gbitまたは10-Gbitネットワークアダプタ、スイッチ、およびルータを設定してください。
アンチウイルス
ホスト上のアンチウイルスソフトウェアが仮想ディスクファイルをスキャンしていないことを確認してください。これらのファイルをスキャンするとVMのパフォーマンスが低下する可能性があります。VMディレクトリ内のVMDKファイルをアンチウイルススキャンから除外できます。
ホストOSおよびゲストOSで実行されているオペレーティングシステムの健康状態を確認してください。ウイルスやその他のマルウェアやランサムウェアがないことを確認してください。
各ゲストOSにアンチウイルスソフトウェアをインストールする代わりに、VMware vShieldと連携する特別なアンチウイルスソリューションを検討してください。このアプローチは、大規模な仮想環境にとってパフォーマンスを向上させることができ、合理的です。vShieldを使用する場合は、このソフトウェアを適切に構成してください。誤った構成はVMのパフォーマンスを低下させる可能性があります。
Hyper-V 関連の問題
VMware Workstation 15.5以降を使用していて、WindowsホストにHyper-V機能がインストールされている場合、VMware仮想マシンのパフォーマンスが低下する可能性があります。Hyper-Vロールがインストールされている場合、Hyper-VはIntel VT-xやAMD-VなどのCPU仮想化機能を直接使用し、VMware Workstationの仮想マシンモニター(VMM)が特権モードで実行する必要があるため、VMware WorkstationのVMMはユーザーモードまたはULMモード(特権モードではなく)で実行します。互換性のため、VMMはHyper-Vによって使用されているCPU仮想化機能にアクセスできないため、MicrosoftのWHP APIを使用します。これにより、VMMとCPUの間に追加のレイヤーが作成され、VMware VMのパフォーマンスが低下します。
ホストWindowsマシンからHyper-Vおよび関連機能(仮想化ベースのセキュリティなど)をアンインストールしてください。その後、VMware WorkstationのVMMは特権モードで実行され、CPU仮想化機能を直接使用して高速に動作します。この解決策により、VMware仮想マシンのパフォーマンスが向上します。
VMパフォーマンスモニタリング
VMのパフォーマンスモニタリングは、過負荷や関連するパフォーマンスの問題を検出するために広く使用されている方法です。VMのパフォーマンスモニタリングは、原因をトラブルシューティングするのに役立ちます。ホストレベルでVMのパフォーマンスを監視することを覚えておいてくださいが、ゲストOS内では行わないでください。ゲストオペレーティングシステムは、動的リソースの割り当てなどの仮想化機能について認識しておらず、正しくないデータを表示する可能性があります。VMwareは、ホストレベルでカウンターを提供しています。これらのカウンターは正しい情報を提供し、VMのパフォーマンスモニタリングに使用されます。VM内でパフォーマンス情報がどのように収集されるかを知ることで、VMwareは、WindowsゲストでPerfmonユーティリティを使用してVMのパフォーマンスに関する正しい情報を表示できるように、仮想マシン固有のカウンターライブラリを開発しました。VMware Toolsは、VMのパフォーマンスモニタリングのためにゲストOSにインストールする必要があります。
VMware vSphere Clientで消費されるハードウェアリソースをチェックするには、仮想マシンを選択し、[Monitor]タブを開き、Performance > 概要またはPerformance > 高度を選択して、チャートやその他の情報を表示します。 概要ページでは、リアルタイムおよび前日、週、月、年、またはカスタム間隔のCPU、メモリ、ネットワーク、およびストレージ(空き容量、使用済み容量、および入出力パフォーマンス)の利用状況を表示できます。このページの2つのドロップダウンメニュー(期間および表示)でこれらのオプションを選択します。
[モニタ]タブで利用率をクリックして、仮想マシンCPU、仮想マシンメモリ、およびゲストメモリの利用状況に関する追加情報を表示します。
同様に、vSphere ClientでESXiホストまたはクラスタを選択し、リアルタイムおよび選択した期間の使用可能なリソースを監視することができます。
結論
このブログ記事では、VMのパフォーマンスの問題について話す際に注意が必要な主なポイントと、仮想マシンのパフォーマンスを改善するのに役立つ推奨事項について説明しました。十分なパフォーマンスを提供するハードウェアを使用し、メモリのオーバーコミットを避け、ソフトウェアを適切に設定します。VMのパフォーマンスモニタリングを使用して、なぜVMのパフォーマンスが遅いのかを検出します。
ディスクの損傷は、遅いVMのパフォーマンスを引き起こす最も危険な問題です。仮想マシンのパフォーマンスが低下するだけでなく、データも失う可能性があります。データの損失を防ぐために、定期的にVMwareデータのバックアップを実行してください。VMware vSphere 7.0をサポートし、バックアップの速度と信頼性を向上させる多くの便利な機能を提供する、VMwareバックアップのための汎用的なデータ保護ソリューションであるNAKIVO Backup&Replicationを使用してください。
Source:
https://www.nakivo.com/blog/a-full-overview-of-vmware-virtual-machine-performance-problems/