仮想マシンパフォーマンスの 最大化

仮想マシンパフォーマンスの
最大化
パフォーマンスチューニング入門
著者
Mattias Sundling
Quest Software, Inc.
ホワイトペーパー
目次
仮想マシンのパフォーマンスの最大化 .......................................................................................... 3
はじめに .................................................................................................................................... 3
要件 ........................................................................................................................................... 3
仮想ハードウェアとゲスト OS ..................................................................................................... 3
vCPU..................................................................................................................................................... 4
メモリ ................................................................................................................................................... 6
ディスク................................................................................................................................................ 8
ネットワーク ...................................................................................................................................... 10
仮想ハードウェアおよびゲスト OS からの不要デバイスの削除 ...................................................... 10
謝辞 ......................................................................................................................................... 11
まとめ...................................................................................................................................... 11
2
仮想マシンのパフォーマンスの最大化
はじめに
VM のパフォーマンスは、最終的には使用している物理的なハードウェアと、仮想インフラストラクチャの基礎を構成するハイ
パーバイザによって決まります。この基本構造は年々シンプルになっていますが、利用されている環境内の VM のパフォーマン
スを最大限に引き出すためには、微調整を必要とする領域がまだいくつか存在します。このホワイトペーパーは、あらゆるハイ
パーバイザに当てはまる一般的な内容も含みますが、特に VMware ESX(i) 4.1 に重点を置いています。
このホワイトペーパーは、パフォーマンスチューニングの概論であり、詳細を網羅するものではありません。詳細については、
ほとんどのトピックに詳細情報を含むサイトへのリンクが記載されているので、参照してください。
要件
・
VMware ESX(i) 4.1 – 古いバージョンを利用している場合は、必ずアップグレードしてください。ESX(i) 3.x 以
降、パフォーマンスとスケーラビリティが大幅に向上しています。ESX(i) 4.1 には、ESX(i) 4.0 に対する改良も
行われています。
・
仮想マシンハードウェアバージョン 7 - バージョン 7 では、パフォーマンスを向上させる機能が導入されてい
ます。仮想ハードウェアバージョン 7 を実行していない場合は、必ず先
先に VMware Tools をアップグレードし
てから、VM のゲスト OS をシャットダウンしてください。VI クライアントで VM を右クリックし、「
「仮想ハ
仮想ハ
ードウェアのアップグレード(
)」を選択します。
ードウェアのアップグレード(Upgrade Virtual Hardware)
ご注意:
注意:仮想ハードウェアをバージョン
仮想ハードウェアをバージョン 7 にアップグレードすると、
にアップグレードすると、ESX(i) 3.x への下位互換性
への下位互換性が
下位互換性が失われる
ため、
ホストを先
ため、混在環境においては
混在環境においては、
においては、必ずすべての ESX(i)ホストを
ホストを先にアップグレードしてください。
にアップグレードしてください。
仮想ハードウェアとゲスト
仮想ハードウェアとゲスト OS
以下の各セクションでは、各種ハードウェアコンポーネントから最高のパフォーマンスを得るための設定方法と、ゲスト OS
内でできる最適化について、それぞれ推奨項目をご紹介します。。
3
vCPU
最初は、vCPU を 1 つだけ割り当てる。―ほとんどのアプリケーションはこれで問題なく動作します。ア
プリケーションの稼働後しばらくしてから、CPU の使用率とアプリケーションのパフォーマンスを評価し
ます。アプリケーションの応答が遅い場合は、必要に応じて vCPU を追加できます。最初から複数の
vCPU を使用し、プロビジョニングが過剰だったことが分かった場合、OS によっては割り当てを元に戻す
のが面倒なことがあります(HAL を参照)。
Exchange カ ー ト リ ッ ジ を 追 加 し た
vFoglight は 、 ハイパーバイザを越
ハイパーバイザを 越 え
てアプリケーションレイヤを認識
てアプリケーションレイヤを認識しま
認識 しま
す。
ゲスト OS で正しい HAL(Hardware Abstraction Layer)を選択してください。HAL は、OS 内の CPU 用ドライバです。
シ ン グ ル プ ロ セ ッ サ の 場 合 は UP ( Uni-Processor ) を 選 択 し 、 マ ル チ プ ロ セ ッ サ の 場 合 は SMP ( Symmetric
Multiprocessing)を選択します。
•
•
Windows 2008 では、UP と SMP のどちらにも同じ HAL が使用されるため、CPU の数を簡単にダウングレー
ドできます。
Windows 2003 以前では、UP と SMP で異なる HAL ドライバが使用されます。Windows では、UP から
SMP に移行すると HAL ドライバが自動的に変更されます。SMP から UP への移行は、OS やバージョンに
よっては非常に複雑になることがあります。
•
Windows 2003 SP2 以降を実行している VM があり、vCPU を 2 個から 1 個にダウングレードした場合、OS
内の HAL はマルチプロセッサ用のままになっています。この結果、正しい HAL を含むシステムよりパフォ
ーマンスが低下します。HAL ドライバは手動で更新できますが、Windows 2003 SP2 より前のバージョンで
は簡単に修正できません。個人的な経験では、HAL ドライバが正しくないシステムは CPU の消費量が多く、
システムに負荷がかかると、CPU 使用率が不必要に高いレベルに達することがあります。
•
マルチプロセッサ VM では、マルチスレッド対応の OS とアプリケーションを用意し、マルチスレッドを利
用できるようにしてください。マルチスレッドに対応していない場合、リソースが無駄に消費されます。
4
この例
この例は、すべての vCPU の CPU 使用率がほぼ
使用率がほぼ同
がほぼ同じである VM を示していま
す。つまり、
つまり、OS とアプリケーションがマルチスレッド対応
とアプリケーションがマルチスレッド対応になっています
対応になっています。
になっています。
CPU のスケジューリング
ESX 2 では、厳密な協調スケジューリング(co-scheduling)が使用され、2 個の pCPU を同時に使用できるようにするには 2 個
の vCPU が必要でした。この時点では、物理 CPU はシングルコアまたはデュアルコアであったため、多数の VM をホストする
とパフォーマンスが低下しました。ESX(i) 3 では、寛大な協調スケジューリング(relaxed co-scheduling)が導入され、2 個の
pCPU を同時に使用できなくても、2 個の vCPU を持つ VM をスケジュールできます。
ESX(i) 4 では、寛大な協調スケジューリングがさらに改良され、パフォーマンスとスケーラビリティが向上しました。
5
CPU % Ready(
(CPU 待機率)
待機率)
ESX(i)ホストで CPU の過負荷によって VM の性能が低下したことが最も良く分かるのは、CPU % Ready(
(CPU 待機率)
待機率)が長時
間にわたって 5~10%に達したときです。このレベルに達している場合、詳細な分析を行う必要があります。10%を超える値は、
間違いなく致命的な競合が発生していることを示しています。つまり、他の VM と CPU リソースを競合しているため、VM は
ESX(i)ホストが CPU リクエストをスケジュールするまで待機しています。このパフォーマンス測定値は、仮想化環境全体のパフ
ォーマンスを把握するために監視すべき最も重要な測定値の 1 つです。これはハイパーバイザでしか確認できず、結果としてゲ
スト OS 内部の CPU 使用率が非常に高くなることがあります。
CPU % Ready は VM のパフォーマンスを把握
のパフォーマンスを把握するための
把握するための重要
するための重要な
重要な測定値です
測定値です。
です。
メモリ
VM を作成するときは、VM に一定量のメモリを割り当てます。仮想マシンの設定には、Memory Limit(
(メモリ量
メモリ量の制限)
制限)と呼
ばれる(たいていはメリットより弊害の方が多い)機能があります。この設定の機能は、ハイパーバイザのメモリ割り当てを、
実際に割り当てられた量とは別に、ある値に制限することを目的としています。つまり、ゲスト OS は割り当てられたすべての
メモリを認識しますが、ハイパーバイザは Memory Limit(メモリ量の制限)に指定された量までしか物理メモリの使用を許可し
ません。
この機能の唯一使用される場面は、インストール時または起動時に(たとえば)16 GB のメモリを必要とするアプリケーション
が、動作中に 4 GB しか使用しない場合です。このような場合は、Memory Limit(メモリ量の制限)を実際のメモリ割り当てよ
りはるかに小さい値に設定できます。ゲスト OS とアプリケーションは 16 GB のメモリすべてを認識しますが、ESX(i)は物理メ
モリを 4 GB に制限します。
ただし実際には、制限する意図が無い VM にもメモリ制限が設定されます。これは、VM を別のリソースプールに移動したり、
物理システムの P2V を実施したりしたときに発生します。また、vCenter の既知の不具合の結果として発生することもあります。
この不具合は、VM に対してランダムにメモリ制限が設定されるというもので、最悪の場合、事前に設定されているテンプレー
トで発生し、結果としてこの設定を継承するすべての配備済み VM に影響が及びます。
さらに詳しく説明すると、次のような状況が発生することになります。VM に 2 GB のメモリを割り当て、512 MB の制限がある
場合、ゲスト OS は 2 GB のメモリを認識しますが、ESX(i)ホストは 512 MB の物理メモリしか許可しません。ゲスト OS が 512
MB を超えるメモリを要求すると、メモリバルーンドライバが膨張を開始し、ゲスト OS はどのページがアクティブに使用され
ているかを判定できるようになります。バルーンがメモリを回収できなくなると、ゲスト OS はスワッピングを開始します。バ
ルーンが収縮できない場合や、ESX(i)サーバ上のメモリ使用量が多くなりすぎた場合は、メモリ圧縮が始まり、最後の手段とし
て VMKERNEL がスワップされます。バルーニングは最初の警告シグナルであり、ゲスト OS および ESX(i)ホストのスワッピン
グは VM のパフォーマンスだけでなく、ESX(i)ホストや、仮想メモリとして機能する必要があるストレージサブシステムにも間
違いなく悪影響を与えます。詳細については、http://www.vmguru.com/index.php/articles-mainmenu-62/mgmt-and-monitoringmainmenu-68/96-memory-behavior-when-vm-limits-are-set を参照してください。
6
vFoglight:
: VM の 問題を
問題 を 検出、
検出 、 診
断 、 解決します
解決 します。
します 。 ルールによって
メモリ制限
メモリ 制限を
制限 を 検出し
検出 し 、 診断によっ
診断 によっ
て 問題のある
問題 のある箇所
のある 箇所を
箇所 を 示 し 、 必要な
必要 な
場合はワークフローによって
場合 はワークフローによって解決
はワークフローによって 解決
を自動化します
自動化します。
します。
メモリサイズの調整
メモリサイズの調整
VM のメモリ量を設定するときは、次の点を考慮します。
・
・
メモリ量が多すぎると、VM メモリのオーバーヘッドが増加し、VM の密度(1 ホストあたりの VM 数)が可能な数よ
りも減少します。
メモリ量が少なすぎると、ゲスト OS のスワッピングが発生し、パフォーマンスに悪影響が出ます。
正しいメモリ量を特定するには、利用のパターンが分かるようになるまで、少なくとも 30~90 日間にわたってアクティブメモ
リの使用率を監視する必要があります。システムによっては、四半期の特定の時期にしか使用されず、その時期の使用負荷が非
常に高い場合があります。
メモリの定義
メモリの定義:
定義:
Granted:
: ESX(i)ホストが VM に使用を許可して
いる物理メモリ
Active:
: VM がアクティブに使用している物理メ
モリ
Ballooned:
: VMware のメモリ制御ドライバが VM
の OS によるメモリの選択的なスワップを実行する
ために使用しているメモリ
Swapped:
:ディスクにスワップされているメモリ
全ての測定値のリストと説明については、
http://communities.vmware.com/docs/DOC5600 を参照してください。
この例
この例では、
では、メモリの使用率
メモリの使用率(
使用率(アクティブメモリ)
アクティブメモリ)が長時
間にわたって非常
にわたって非常に
非常に低いため、
いため、メモリの設定値
メモリの設定値を
設定値を下げても
VM やアプリケーションのパフォーマンスには影響
やアプリケーションのパフォーマンスには影響せず
影響せず、
せず、
安全です
安全です。
です。
メモリの回収
メモリの回収
メモリ回収のために ESX(i)ホストに過剰な負荷がかかるのを避けるには、メモリの割り当てを適切なサイズに調整することがベ
ストプラクティスです。ESX(i)ホストが VM のメモリを回収する手法には、いくつかの種類があります。いずれにしても、でき
るだけ多くの VM を実行したいので、おそらくメモリの過剰割り当て(実際のメモリ量を超えた割り当て)を行うことになりま
す。
7
o
バルーニング*:
バルーニング : VM 内部のメモリプレッシャーを増やすことにより、メモリを回収します。これには、VMware
Tools が必要です。パフォーマンスに悪影響が出るため、バルーニングを無効にしないでください。バルーニングが
多数発生した場合は、vMotion を使って VM を別のホストに移行してください。すべてのメモリが VM に再割り当て
されます。また、VM に対して固定のメモリ制限値が設定されていないことを確認してください。
o
スワッピング*:
スワッピング :ESX(i)ホストに VM メモリをディスクにスワップさせることにより、メモリを回収します。
o
メモリ圧縮
メモリ圧縮*:
圧縮 : ページをディスクにスワップされる前に圧縮することにより、メモリを回収します。
o
透過的なページ
透過的なページ共有
なページ共有:
共有:(同じ VM 内または異なる VM 間で)同じ内容を含む冗長なページを削除することにより、メ
モリを回収します。VM メモリ割り当ての 10%を圧縮キャッシュとして使用できます。
* ESX(i)ホストでメモリの競合が発生した場合にのみ有効になります。
詳細については、次を参照してください。
http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf
http://frankdenneman.nl/2010/06/memory-reclaimation-when-and-how/
ディスク
次に、仮想化環境のパフォーマンスの根本を構成する最も複雑な要素であるディスクの設定に移りましょう。
準仮想化 SCSI(
(PVSCSI)
)コントローラ
•
PVSCSI を使用すると、スループットが向上し、CPU 使用率が低下します。研究によれば、PVSCSI を実装すると、
LSI Logic ベースのコントローラに比べてスループットが 12%向上し、CPU 使用率が 18%減少することが分かってい
ます。http://blogs.vmware.com/performance/2009/05/350000-io-operations-per-secondone-vsphere-host-with-30-efds.html
•
VMware による PVSCSI 対 LSI Logic のベンチマークテスト:http://www.vmware.com/pdf/vsp_4_pvscsi_perf.pdf
•
ESX(i) 4.1 では PVSCSI が改良され、低いディスク I/O を処理できるようになりました。以前のバージョンの ESX(i)
ではキューイングに問題があり、遅延が発生することがありました。http://vpivot.com/2010/02/04/pvscsi-and-low-ioworkloads
•
PVSCSI の設定方法の詳細については、次を参照してください。
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1010398
•
OS ディスク、スワップディスク、データディスクを別々の VMDK ファイルに分割します。
o
これは、(主にスワップデータが排除されることで)パフォーマンスの向上とデータの保護に役立ちます。
o
ディスクごとに別々の仮想ディスクコントローラを作成することを検討します。これにより、単独のコント
ローラより高いディスク I/O に対応できます。VM の電源を切って SCSI ID を 1:0、2:0、のように変更する
と、追加のコントローラが得られます。
LUN のサイズ調整
のサイズ調整と
調整と VM の置換
•
データストアを正確なサイズ(500~1000 GB)で作成します。LUN のサイズを大きくしすぎると、VM の数が
多くなりすぎて、SCSI 予約の競合が発生し、メタデータのロック(vMotion、VM の電源断、およびスナップショッ
ト)が原因でディスク I/O が低くなる可能性があります。
o
VAAI(vStorage API for Array Integration)は、ESX(i) 4.1 の新しい API で、負荷の高い処理の一部をハイパ
ーバイザから切り離し、それをストレージハードウェアに移動します。ハードウェアがサポートしている場
合は、パフォーマンスの問題を起こさずにより大きなデータストアを実行できます。また、上記のメタデー
タのロックを減少させる効果もあります。詳細については、次を参照してください。http://www.yellowbricks.com/2010/11/23/vstorage-apis-for-array-integration-aka-vaai/
•
データストアを作成するときは、ブロックサイズを 8 MB にします。このサイズにすると、パフォーマンスに対する
悪影響がなく、より大きな VMDK ファイルを保持できます。VAAI を使用する場合は、すべてのデータストアのブロ
ックサイズを同じにする必要があります。
•
すべての LUN にわたってディスク I/O を効率化するには、LUN のパフォーマンスを監視し、できるだけ早く遅延を特
定します。
8
vFoglight Storage:
Storage:パス、
パス、スループット、
スループット、遅延の
遅延の監視が
監視が重要です
重要です。
です。
VMFS とゲスト OS の配置
vCenter クライアントから新しい VMFS ボリュームを作成した場合、ボリュームは自動的に正しく配置されます。ESX(i)のイン
ストール中に VMFS ボリュームを作成した場合、ボリュームは配置されません。この問題を解決する唯一の方法は、影響を受け
るデータストア内のすべての VM を Storage vMotion によって新しいデータストアに移行し、vCenter クライアントからデータ
ストアを作成し直すことです。
Windows 2008、7、および Vista では、デフォルトで NTFS ボリュームが配置されます。それ以前の Windows サーバ OS は、い
ずれもディスクを正しく配置できません。ディスクを配置できるのは、ディスクの作成時だけです。ほとんどの Linux ディスト
リビューションも、このように配置が不正になる傾向があります。
•
ディスクを適切に配置すると、平均でパフォーマンスが 12%向上し、遅延が 10%減少します。詳細については、次を
参照してください。http://www.vmware.com/pdf/esx3_partition_align.pdf
•
Quest vOptimizer Pro は、Windows および Linux の既存ディスク上の配置の問題を検出して解決できます。詳細につ
いては、次を参照してください。http://www.quest.com/voptimizer%2Dpro/
ストレージ I/O 制御(
)
制御(SIOC)
ESX(i) 4.1 では、データストア単位で SIOC を有効にできます。これは、ミッションクリティカルな VM でディスクが過負荷状
態になったときに必要なディスク I/O を得られない可能性がある場合に便利です。
VM ごとにディスク共有を設定できます。ディスクが過負荷状態になると、ディスク共有の負荷がより高い(共有が過負荷状態
でのみ使用される)VM に優先的により多くのディスク I/O が割り当てられます。この動作は、メモリ共有と同じです。
9
ネットワーク
物理ネットワーク
物理ネットワーク
•
1G ビット/秒または 10G ビット/秒の速度の複数の冗長化した物理 NIC が VM の仮想ネットワークスイッチに接続さ
れていることを確認してください。
VMXNET3
ゲスト OS のネットワークドライバは、デフォルトの E1000 から VMXNET3 に更新できます。VMXNET3 は、前項の準仮想化
ストレージと同じように拡張された準仮想化ネットワークドライバで、10G ビット/秒のネットワーク速度を利用できます。
注意:
注意:IP アドレスが DHCP にリセットされ、
にリセットされ、新しい MAC アドレスが生成
アドレスが生成されます
生成されます。
されます。必ず次のようにして従来
のようにして従来の
従来の設定を
設定を保存し
保存し
てください。
てください。Ipconfig /all >c:\ip.txt(設定が Windows の ip.txt に保存されます)
必要に応じて、ネットワーク上でジャンボフレームを有効にするオプションを使用すると、環境内で送受信されるパケットを最
大化できます。
•
ゲスト OS のドライバ(vSwitch)と物理ネットワークポート(エンドツーエンド)で、MTU を 9000 に設定します。
ネットワークインフラストラクチャもジャンボフレームに対応している必要があります。
•
ESX(i) 4.1 は、VMXNET3 のゲスト OS 上で Fault Tolerance をサポートします。
•
詳細とパフォーマンステストについては、次を参照してください。
http://www.vmware.com/pdf/vsp_4_vmxnet3_perf.pdf,
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1001805
ネットワーク I/O 制御(
)
制御(NetIOC)
NetIOC を使用して、vMotion、NFS、iSCSI、Fault Tolerance、VM、および Management が使用するネットワーク帯域幅を制御
できます。この制御は共有または制限を設定することによって行われます。これによって QoS(Quality of Service)が制御され、
重要なコンポーネントが常に必要なネットワーク帯域幅を取得できるようになります。
仮想ハードウェアおよびゲスト
仮想ハードウェアおよびゲスト OS からの不要
からの不要デバイスの
不要デバイスの削除
デバイスの削除
仮想ハードウェアやゲスト OS 内の不要なデバイスは、エミュレーションのために不要な CPU リソースやメモリリソースを使
用します。使用しないデバイスは必ず削除してください。ゲスト OS の内部を整理しても、パフォーマンスはそれほど向上しま
せん。むしろ、一種の維持管理作業です。
•
フロッピー、CD、USB、シリアルポート、通信ポート、サウンド
•
デバイスが少ないほど、VM 上のオーバーヘッドが少なくなります。
•
OS 内の削除されたハードウェアも整理します。
・
Windows の場合
・
コマンドプロンプトで、次のように入力します。
Set devmgr_show_nonpresent_devices=1
・
デバイスマネージャ(devmgmt.msc)を起動します。
•
デバイスマネージャで「非表示のデバイスの表示」を選択します。
•
存在しないデバイスをすべて削除します。
10
謝辞
このホワイトペーパーを査読し、貴重なご意見をくださったクエスト・ソフトウェアの同僚である Tommy Patterson、Chris
Walker、Paul Martin、Thomas Bryant、および Scott Herold に感謝します。
さらなる精査を行い、間違いを見つけてくださった VMware のトレーナーでありブロガーである Eric Sloof 氏(ntpro.nl)には特
に感謝の意を表します。
まとめ
基礎となる構成を調整することで、インフラストラクチャをより有効に活用できます。構成要素(CPU、メモリ、ディスク、お
よびネットワーク)が最適化されれば、最終的に真のパフォーマンスが明らかになります。
11
クエスト・ソフトウェアについて
クエスト・ソフトウェア(Nasdaq:QSFT)は、100,000社を超える世界中の顧客に対し
てIT管理の簡素化とコスト削減を図っています。クエスト・ソフトウェアの革新的な
ソリューションは、最も困難なIT管理の問題を容易に解決し、物理環境、仮想環境、
クラウド環境にわたって顧客の時間と費用を節約します。クエスト・ソフトウェアの
詳細については、www.quest.comをご覧ください。
クエスト・ソフトウェアへのお問い合わせ
TEL:
03-3263-5241
E-MAIL
[email protected]
郵便: 東京都千代田区五番町10番地 五番町KUビル3F
クエスト・ソフトウェア株式会社
クエスト・サポートへのお問い合わせ
クエスト・サポートは、Quest製品の体験版をお持ちのお客様、または製品版を購入
し、有効な保守契約書をお持ちのお客様がご利用いただけます。クエスト・サポート
は、弊社のWebセルフサービスであるSupportLinkで、24時間体制のサービスを提供し
ています。SupportLink(https://support.quest.com)を参照してください。.
SupportLinkでは、以下のことを行うことができます。:
• クエスト・ソフトウェアのオンラインナレッジベースの検索
• クエスト・ソフトウェア製品の最新リリース、
マニュアル、パッチのダウンロード
• サポート事例のログ記録
• 既存のサポート事例の管理
サポートプログラム、オンラインサービス、連絡先情報、およびポリシーと手順の詳
細については、『Global Support Guide』を参照してください。
5 Polaris Way, Aliso Viejo, CA 92656 | PHONE 800.306.9329 | WEB www.quest.com | E-MAIL [email protected]
If you are located outside North America, you can find local office information on our Web site.
© 2011 Quest Software, Inc.
ALL RIGHTS RESERVED.
Quest, Quest Software, the Quest Software logo are registered trademarks of Quest Software, Inc. in the U.S.A. and/or other countries. All other trademarks and registered trademarks are property of their respective
owners. TBD_EffectivelyManagingOracleStandardEdition_US_VG_20110207