VMwareで採用されているギャングスケジューリングは重大な欠点ですか?


15

VMwareとhyper vがCPUスケジューリングを行う方法の違いに関するいくつかのテクネット記事とこの記事を読んでいました。

これについて客観的な情報を得ることができるかどうか疑問に思っていました。VMwareが使用するギャングスケジューリングは大きなデメリットであるように思えますが、私はただクールエイドを飲みたくありません。パフォーマンスに深刻な影響を与えるのでしょうか、それともVMwareのハイパーバイザーの最新バージョンがこれを解決しますか?

編集:私が不利を言うとき、私はHyper Vの「無料プロセッサスケジューリング」またはKVMがそれを行うに比べて意味します。私が読んでいた資料は、ギャングスケジューリングで回避される「無料プロセッサスケジューリング」に問題があるとは言いませんでした。


3
ギャングスケジューリングは、異なる速度や時間で実行される可能性のある仮想プロセッサに対してテストされたことのない古いコードに対して、より適切に動作します。
ブライアン14年

回答:


22

ブラッディマリーを暗く照らされたバスルームの鏡に唱えるのと同じように、ジェイク・オシンが現れるかどうか見てみましょう...

ギャングスケジューリングは、共同スケジューリングとも呼ばれます。VMwareはギャングスケジューリングよりもコスケジューリングという用語を好むと思います。

バージョン3.xより前のESXバージョンでは、VMwareは「厳密な」同時スケジューリングを使用していましたが、これには同期の欠点がありました。ESX 3.x以降では、VMwareは「リラックス」コスケジューリングに切り替えました。

緩和された協調スケジューリングは、ESX 3.xの厳密な協調スケジューリングに代わるものであり、CPU使用率を向上させ、幅広いマルチプロセッサ仮想マシンをサポートするために、以降のリリースで改良されました。緩和された協調スケジューリングには、厳密な協調スケジューリングアルゴリズムと比較していくつかの特徴的な特性があります。最も重要なのは、厳密な同時スケジューリングアルゴリズムでは、遅れるvCPUの存在により、仮想マシン全体が同時に停止することです。緩和された協調スケジューリングアルゴリズムでは、主要なvCPUは、最も遅い兄弟vCPUに対するスキューに基づいて、それ自体を協調停止するかどうかを決定します。スキューがしきい値よりも大きい場合、先行するvCPUが自動的に停止します。遅延vCPUは、最速の兄弟vCPUよりも進行が著しく遅いものであることに注意してください。一方、主要なvCPUは、最も遅い兄弟vCPUよりも大幅に進歩したものです。最も遅い兄弟vCPUを追跡することにより、各vCPUが独自に同時スケジューリング決定を個別に行うことが可能になりました。共同停止のように、共同開始の決定も個別に行われます。最も遅い兄弟vCPUが進行し始めると、共停止されたvCPUは共開始の資格があり、pCPUの可用性に応じてスケジュールできます。これにより、vCPUのグループを一緒にスケジュールする必要がなくなるため、厳密な同時スケジューリングアルゴリズムのCPUフラグメンテーションの問題が解決されます。4-vCPU仮想マシンの前の例では、使用可能なアイドルpCPUが1つしかない場合でも、仮想マシンは前進できます。これにより、CPU使用率が大幅に向上します。最も遅い兄弟vCPUを追跡することにより、各vCPUが独自に同時スケジューリング決定を個別に行うことが可能になりました。共同停止のように、共同開始の決定も個別に行われます。最も遅い兄弟vCPUが進行し始めると、共停止されたvCPUは共開始の資格があり、pCPUの可用性に応じてスケジュールできます。これにより、vCPUのグループを一緒にスケジュールする必要がなくなるため、厳密な同時スケジューリングアルゴリズムのCPUフラグメンテーションの問題が解決されます。4-vCPU仮想マシンの前の例では、使用可能なアイドルpCPUが1つしかない場合でも、仮想マシンは前進できます。これにより、CPU使用率が大幅に向上します。最も遅い兄弟vCPUを追跡することにより、各vCPUが独自に同時スケジューリング決定を個別に行うことが可能になりました。共同停止のように、共同開始の決定も個別に行われます。最も遅い兄弟vCPUが進行し始めると、共停止されたvCPUは共開始の資格があり、pCPUの可用性に応じてスケジュールできます。これにより、vCPUのグループを一緒にスケジュールする必要がなくなるため、厳密な同時スケジューリングアルゴリズムのCPUフラグメンテーションの問題が解決されます。4-vCPU仮想マシンの前の例では、使用可能なアイドルpCPUが1つしかない場合でも、仮想マシンは前進できます。これにより、CPU使用率が大幅に向上します。最も遅い兄弟vCPUが進行し始めると、共停止されたvCPUは共開始の資格があり、pCPUの可用性に応じてスケジュールできます。これにより、vCPUのグループを一緒にスケジュールする必要がなくなるため、厳密な同時スケジューリングアルゴリズムのCPUフラグメンテーションの問題が解決されます。4-vCPU仮想マシンの前の例では、使用可能なアイドルpCPUが1つしかない場合でも、仮想マシンは前進できます。これにより、CPU使用率が大幅に向上します。最も遅い兄弟vCPUが進行し始めると、共停止されたvCPUは共開始の資格があり、pCPUの可用性に応じてスケジュールできます。これにより、vCPUのグループを一緒にスケジュールする必要がなくなるため、厳密な同時スケジューリングアルゴリズムのCPUフラグメンテーションの問題が解決されます。4-vCPU仮想マシンの前の例では、使用可能なアイドルpCPUが1つしかない場合でも、仮想マシンは前進できます。これにより、CPU使用率が大幅に向上します。使用可能なアイドルpCPUが1つしかない場合でも、仮想マシンは前進できます。これにより、CPU使用率が大幅に向上します。使用可能なアイドルpCPUが1つしかない場合でも、仮想マシンは前進できます。これにより、CPU使用率が大幅に向上します。

上記のスニペットはVMware自身のドキュメントからのものです。

したがって、VMwareは厳密なギャングスケジューリングを使用しなくなりました。ベンダーから直接提供されたドキュメントをより信頼できるものとして扱います。

ハードな数値を与える唯一のものはベンチマークであり、CPUが実行しているコードの種類に完全に依存します。しかし、VMwareがそのような不利な状況にある場合、仮想化市場でまだ大きなシェアを占めていないことを伝えることができます。


聞いてよかった。これは、MSベースのドキュメント/記事で説明されているように、マーケティングの策略のようです。
red888 14年

8
2006年以前のESXのバージョンは、2008年にリリースされたHyper-V(少なくともCPUスケジューリングに関して)と比較して不利でした。
クリスS 14年

したがって、16コアVMにシングルスレッド(duh!)MSDOSをインストールすると、VMのすべてのCPUサイクルがホスト上の16コアをロックダウンするのではなく、1つのpCPUのみをロックダウンしますか?これは、CPUの速度ではなく、ギャングスケジューリングの主な欠点です。
dyasny 14年

「ギャングスケジューリングはコスケジューリングよりも厳密です」- リンク -ここでは、ギャングスケジューリングはコスケジューリングと呼ばれていません。私を混乱させてください!
ロビン

16

さて、ライアン、あなたは私の一日を作りました。私はこのフォーラムを以前ほど読みませんでしたが、たまたまチェックインしました。

Red888、私はマイクロソフトでHyper-Vに取り組んでいるソフトウェアアーキテクトであることを事前に知っておく必要があります。これを読んでいるほとんどの人は、この下にある私の名前のリンクをクリックして、それを発見したり、グーグルでさえも見つけることができると思いますが、この答えのために、これを読んでいる人が私の視点について疑いがないことを完全に確信することは有益です。

一般に、ギャングスケジューリングは、ハイパーバイザーがVM内で実行されているOSの動作に影響を与える方法がない場合に役立ちます。もちろん、これがVMwareがこのように始めた理由です。オペレーティングシステムを所有していないため、既存のオペレーティングシステムを適切に機能させることが目標でした。もし私が彼らだったら、ここから始めました。

ギャングスケジューリング、およびVMwareはおそらくこれについては正しいと言うでしょうが、マシン内で物理プロセッサを使用する方法には多くの制限があります。ハイパーバイザーは多くの場合、現時点で適切なリソースを見つけることができません。そのため、彼らは長年にわたってアルゴリズムを修正し、より効果的なスケジューリングを行う方法を探してきました。

マイクロソフト(およびおそらく他のいくつかの企業)は、異なる視点から始めました。Windowsを所有しています。仮想化された場合、Windowsを適切に動作させます。したがって、ギャングスケジューリングは必要ありません。ギャングスケジューラを作成する手間もかかりません。

興味深いことに、Microsoftでは、Hyper-VがVMware、KVM、Xen、Oracle、Unisysなどよりも見栄えが良いことよりも、Windowsが他のオペレーティングシステムと比較してうまく動作することを重視しています。ハイパーバイザーとの連携に使用します。好奇心が強い人のためのリンクを次に示しますが、就寝前の読書としてはお勧めしません:

http://www.bing.com/search?q=Hypervisor+Top-Level+Functional+Specification+3.0a%3A+Windows+Server+2012&src=IE-SearchBox&FORM=IESR02

そのため、ハイパーバイザーベンダーは、Windowsから協調動作をトリガーするものを公開できます。それらのいくつかは持っています。VMwareがこれを公開しているか、公開しているか、公開するかどうかは正直わかりません。あなたは彼らに、または彼らに多くの注意を払っている誰かに尋ねなければなりません。そして、もしそうなら、さらにリラックスするためにスケジューラーを修正していなかったら、私は非常に驚くでしょう。もちろん、最後の声明は純粋な憶測です。

私の一番下の答えは、ハイパーバイザースケジューラの動作に基づいて2014年に購入を決定する必要があるとは思わないということです。私は彼らが今ではかなり良いと思う。数年前、それは真実ではなかったかもしれません。

さまざまなシステムでワークロードを試して、どのように機能するかを確認する必要があります。最終的なパフォーマンスは、ストレージとネットワークがニーズを満たすかどうかにかかっています。


それは情報のためです。私はちょうどこのことについて読んでいて、学問的な好奇心で質問をしていました
red888 14年

4
ウッホー、私のブラッディマリーが働いた!:Dあなたが立ち寄るのを見るのはいつも良い。
ライアンリース14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.