web-dev-qa-db-ja.com

Hyper-Vスレッドの優先順位ホストとゲスト-それらはどのように対応しますか?

はい、面白い質問です。

与えられたもの:Hyper-V仮想マシンのホスト。 HPCタイプのクラスター。

これらは、その上にある多数の仮想マシンです。ほとんどの場合、CPUを消費しません。また、HPCスタイルのクラスターを社内で実行しています。エージェントはジョブをプルして処理します。

Hyper-Vマシンにエージェントをインストールするという話があります。 ATパフォーマンスを大幅に向上させる瞬間-計算クラスターのハードウェアを実際に立ち上げるまで、夏がかかります。

エージェントは、優先度の低いスレッドですべての計算を実行しています。通常のコンピューターの場合、これは、エージェントが基本的にCPU使用率を最大化するが、コンピューターの操作自体には実際には干渉しないことを意味します。エージェントの実行中にDVDを視聴することもできます。

さて、Hyper-Vではどうですか? Hyper-Vコアは仮想CPUにどのような「優先順位」を与えますか?ルートパーティションの優先度は仮想マシンよりも高くなっていますか?エージェントが実行中の仮想マシンに干渉しないようにします。

5
TomTom

Hyper-V親パーティション(管理OS)は、ハイパーバイザー内で特別です。仮想プロセッサが実行可能である場合、ゲストVMよりも優先度が大幅に向上します。これは、サポートされているHyper-V構成では、管理OSが(統計的に言えば)ゲストVMに代わってI/Oを実行するだけであるためです。管理OSに他のものをインストールすると、ゲストVMに代わって作業が優先されます。

これはすでに発生していると思いますが、サポートされている方法で実行できます。物理マシンと基本的に同じサイズのVMを作成します。CPUとメモリの重みを非常に低くし、ダイナミックメモリをオンにして、アイドル時にメモリをあまり使用しないようにします。そのVMでコンピューティングタスクを実行します。Hyper-Vは、そのゲスト以外のゲストに対して作業を行うことを優先しますが、コンピューティングタスクに代わってアイドルサイクルを使用します。

5
Jake Oshins

まず、これを邪魔にならないようにします。Hyper-Vの親パーティション(ホストOS)で追加のワークロードを実行することはお勧めしません。その唯一の目的は、システム上の他のゲストVMに管理および制御機能を提供し、管理者にシステム上の他のゲストVMのビューを提供することです。そうは言っても、あなたは確かにそれを行うことができ、それはあなたにとって素晴らしいことかもしれません。ただし、Microsoftの公式のスタンスは、親パーティションで追加のワークロードを実行しないようにすることです。さて、それは邪魔になりません:

幸せな楽しみASCIIアーキテクチャ図:

| Parent | Child | Child | Child |
----------------------------------
            Hypervisor
----------------------------------
         Physical Hardware

親パーティションは、起動元であり、他のすべての子VMを作成および制御するOSであり、実際には、子パーティションと同じレベルにある別の論理パーティションです。これらのパーティションはすべて並行して実行されます。唯一の違いは、ルートパーティションにハイパーバイザーによって特別な特権と責任が与えられることです。 Hyper-V管理コンソールを介して子仮想マシンに割り当てることができるCPUの重み、予約、および制限がありますが、これらがハイパーバイザーのスレッドの優先順位として認識されているものにマップされるかどうか、またはどのようにマップされるかはわかりません。

ルートパーティション(または管理OSまたはホストOS)には、仮想マシンごとにvmms.exeとvmwp.exeのインスタンスが1つ表示されます。 VM管理サービス(vmms.exe)は、ハイパーバイザーにWMIインターフェイスを提供して、MMCからVMを管理できるようにします。また、次の場合にvmwp.exeの新しいインスタンスを作成します。システム上に新しいVMを作成します。VMワーカープロセス(vmwp.exe)は、状態の管理など、一般的なモノリシックハイパーバイザーが実行する仮想化作業を実行します。仮想マシンの。

子パーティションが多くのI/Oまたは特権操作を実行しているシステムでは、CPU使用率のほとんどが親パーティションに表示されると予想されます。Vmwp.exeという名前(子パーティションごとに1つ)で識別できます。ワーカープロセスには、仮想化スタックのリモート管理を担当するコンポーネントも含まれています...- Russinovich et al、Windows Internals 6thed。

しかし、残念ながら、vmwp.exeは、VM内で何が起こっているかという点ですべてではありません。管理OSからこれらのプロセスの優先順位を操作することを考えている場合は、おそらく未知の状態にあるでしょう。サポートできない領域。 vmwp.exeプロセスに対して課金されない可能性があるが、仮想マシンの全体的なワークロードの一部と見なされる可能性があるハイパーコールやエンライテンドコールなどもあります。

ルートパーティションに存在し、子パーティションには存在しない可能性がある重要なHyper-Vコンポーネントは別として、他の子VMコードの実行をプリエンプトする可能性がありますが、すべてのパーティションが等しいと想定しますスレッドスケジューリングの観点からハイパーバイザーに。

残念ながら、マイクロソフトはこれらの質問に答えるために多くの深く技術的な記事を公開していません。 Russinovichと彼の友人がいなかったら、私たちにはありませんでしたWindows Internals。 Hyper-Vに関する簡単なセクションがあり、この投稿を書くときに相談しましたが、それでもこの投稿ほど詳細ではありません。

4
Ryan Ries