web-dev-qa-db-ja.com

Hyper-VおよびHyper-threading:オンまたはオフ?

ハイパースレッディングをサポートする新しいXeon CPUを使用して、Hyper-Vホストマシンでそれを使用する(または使用しない)ことについて、現在の知識は何ですか?

私はもともと、「追加」のCPUが真のコアではなかったため、仮想ホスト環境で有効にすると有害になる可能性があるという印象を受けました。ただし、Hyper-VをHyper-threading環境で適切に実行するためにハードワークを行っているMSの行に沿った(未確認の)コメントも読みました。

この点について誰かが確かな情報や経験を持っていますか?乾杯!

23
CapBBeard

Virtual Server 2005のハイパースレッディングの古い問題は、過度に技術的になることなく、CPUキャッシュが汚染されていたことです。つまり、各スレッドで発生している内容のコンテキストが無関係であるため、ほとんど何もキャッシュしていませんでした。オンチップキャッシュ。

新しいチップはより大きくよりスマートなキャッシュを持っているので、これは問題の少ないものです。

オンまたはオフにするのは理想的ですか?それは本当にワークロードに依存します。両方のスレッドが同じVMと同じタスクを実行している場合、ほぼ確実に大きな利点になります。ランダムなRAM I/O(たとえば、いくつかの異なるVM)を使用して無関係なことを行っていた場合、チップのキャッシュの半分しか利用できず、理論的には遅くなる可能性があります-In現実はめったにありません。

古い世代のチップを使用している場合でも、チップキャッシュサイズを確認する必要がある場合があります。 RAMは本当にCPUよりもかなり遅いです-ディスクドライブほど悪くはありません。

注:ハイパースレッディングを備えたシングルコアのチップに関して、「オフにする」と書かれているのが見つかりました-たとえば、これは当時(2005/2006年)の公式の回答でした- http:/ /www.VirtualServerFAQ.com/tiki-index.php?page=VirtualServerHostDualCore

スティーブ・ラディック http://www.VirtualServerFAQ.com

Windows IT Proによると、あなたはそれをそのままにしたいです:

A.新しい4コアインテルCore i7プロセッサーはハイパースレッディングを有効にし、各プロセッサーコアを2つの仮想コアに分割して(潜在的に)パフォーマンスを向上させます。

Hyper-Vとハイパースレッディングの問題は、各仮想マシン(VM)に多数のプロセッサコアを割り当てることです。 Hyper-V管理コンソールから2つのゲストVMにそれぞれ1つのプロセッサを割り当て、それぞれが個別のコアを使用すると想定します。ハイパーバイザーが各VMを同じ物理コアに割り当て、それぞれが仮想コアを取得するとどうなりますか?パフォーマンスが低下し、3つの物理コアがあまり機能しない可能性があります。それぞれのVMが独自の物理コアを取得するのに適しています。

幸い、そうではありません。マイクロソフトは、ハイパースレッディングとハイパーVに関連する多くの作業を行ってきました。基本的に、ハイパースレッディングはパフォーマンスを向上させる場合がありますが、パフォーマンスを低下させることはないため、ハイパースレッディングを有効にする必要があります。

21
Sean Earp

ハイパースレッディングを認識するプログラムは、物理コアと論理(仮想)コアを区別し、それに応じてリソースを割り当てることができます。

ハイパースレッディングは、一度に1つの状態だけでなく、2つのプロセスの状態をいつでも格納できるようにすることで、コンテキスト切り替えのコストを削減します。プロセスの状態全体をCPUにロードする必要があるため、コンテキスト切り替えは通常非常にコストがかかると考えられています。つまり、CPUを集中的に使用するプロセスを実行している場合、ハイパースレッドCPUは、パフォーマンスに大きな影響を与えることなく、そのプロセスと他のプロセスを頻繁に切り替えることができます。

仮想サーバーを実行する利点は、必要に応じてオンザフライでさまざまなサーバーに割り当てることができるリソースの大きなプールを作成できることです。これには、CPUコアの再割り当てと、使用可能なすべてのコア間での負荷の分散が含まれます。ハイパーバイザーが物理コアと論理コアの違いを認識していない場合、そのとおりです。一部の物理コアはアイドル状態のままで、他の物理コアは100%のCPU使用率でペグされ、両方の論理コアはCPUを競合しています。時間。ただし、ハイパーバイザーが物理コアと論理コアの違いを認識できる場合は、同じ物理コアに属する2つの論理コアに複数のプロセスを割り当てる前に、物理CPU間でCPU負荷のバランスをとろうとします。

6
rob

この問題の詳細については調査していませんが、「容量の計画と監視」の問題のため、Exchange 2010でハイパースレッディングを使用することはお勧めしません。いずれかの構成を選択する前に、独自のワークロードをテストすることをお勧めします。

2
duffbeer703