web-dev-qa-db-ja.com

Linux仮想化ソリューションのベンチマークを行うための最良の方法

Linux仮想化ソリューション(つまり、Xen、KVMおよびOpenVZ))でいくつかのベンチマークを実行したいと思います。現在、テスト環境のセットアップ方法を考えています。現在のアプローチは、以下:

  • ベアサーバーシステムをセットアップする
  • 3つのソリューション(カーネル)をすべて同じシステムにインストールし、セットアップします(+ VM)
  • 特定のカーネルを起動し(他のソリューションからの最終的なサービスを無効にします)、ベンチマークを実行します

このアプローチは問題ありませんか、それとも3つのシステムを互いに完全に分離する必要がありますか(それぞれが1つのソリューションのみがインストールされた3つの完全に独立したインストールがあります)?

追加の質問:どのようなベンチマークを実行する必要があるかについてのヒントはありますか?コンパイル(Linuxカーネルなど)、ab(Apacheベンチマーク)、OSDB(オープンソースデータベースベンチマーク)について考えました。比較は主に、個々のVMの全体的なパフォーマンス、I/Oパフォーマンス、および応答時間に焦点を当てる必要があります。

よろしくお願いします、マティアス

2
maff

テストは、本番環境で実行する方法にできるだけ近い方法で実行する必要があります。したがって、各システムを個別にインストールして、テストを実行してください。これには、テストボックスを数回平らにする必要がある場合がありますが、最もクリーンな結果が得られます。次に、テストケースの作成に焦点を合わせます。私の頭のてっぺんからいくつか:

  • 複数VMテスト同じホスト上で複数のVMを実行します。
  • ビジーVMリソース競合 1つVM CPUを非常に要求するものを実行し、他のVMで他のテストを実行してそれらがどのようになっているのかを確認する影響を受けます。
    • 同じことを行いますが、ディスクI/O VMが高い場合は、他のVMがどのように影響を受けるかを確認します。
  • マルチプロセッサ効率ハードウェアがある場合は、複数の仮想CPUでVMを実行し、その効率的な使用を判断します(たとえば、複数のジョブでカーネルをコンパイルします)。

本質的に、Edgeのケースをブレインストーミングし、それらのケースを中心にテストを構築します。 VMがリソースに夢中になるとどうなりますか?ハイパーバイザーはリソースのオーバーサブスクリプションをどの程度うまく処理しますか?1つのVMロックアップは他のVMにどのように影響しますか?システム上で?

2
sysadmin1138

Anandtech.comが仮想化に関して行ってきたベンチマークについて読んだことがあります。

また、VMwareがEULAでベンチマークを許可しない理由を読んでください。彼らは悪いベンチマークのいくつかの本当に良い例を示しています:

http://blogs.vmware.com/virtualreality/2009/03/a-big-step-backwards-for-virtualization-benchmarking.html

3
Brent Ozar

テストの反復ごとに、テスト環境に1つのハイパーバイザーを設定してテストを実行することを強くお勧めします。この方法でハイパーバイザーを分離すると、不要な相互作用の可能性が低くなります。特に準仮想化VMの場合。

限られたリソースごとにハイパーバイザーの限界点を見つける追加のテストスイートを設計することを考えてください。

  • CPU
  • 記憶
  • I/O帯域幅

あなたが見つけたいのは、病理学的ポイントの前後にどのような行動の特異性が経験されるかです。また、一部のホストVMに何らかの形の回復がある場合。

たとえば、ハイパーバイザーが過負荷の場合。まだVMをシャットダウンできますか?.

0
dezwart