web-dev-qa-db-ja.com

VirtualBoxが利用可能なCPUよりも多くのCPUを表示するのはなぜですか?

私は6つのCPUコアを搭載したIntelCore i73930Kを持っています。これで、そのすべてのコアが2つの別々のスレッドを処理できることを理解しました。これにより、12個の仮想コアが作成されます。これはシステムモニターを使用して確認できます(下のスクリーンショットを参照)。

しかし、OracleのVirtualBoxソフトウェアを使用して仮想マシンを作成すると、突然24個のCPUをそのマシンに割り当てることができます。どうして?

enter image description here

それで、それはどういう意味ですか?実際には24コアがありますか?それともVirtualBoxが間違っていますか?

また、たとえば4つのコアを割り当てるとどうなりますか?仮想マシンに実際に追加されるコアの数はいくつですか?

7
Afr

ハイパースレッディングの有無にかかわらず、1つのコアは、タイムスライスするだけで、任意の数の仮想コアをシミュレートできます。ただし、オペレーティングシステムは、同時に実行されているコードが実際にインターリーブすることを想定しているため、これによりあらゆる種類の問題が発生します。オーバープロビジョニングはパフォーマンスの低下につながる可能性があるため、システムがフリーズしているように見え、操作に文字通り数千倍の時間がかかる可能性があります。

12
David Schwartz

4コアを割り当てると、VMに4コアが割り当てられます。ただし、ほとんどの場合、別のコアを追加するたびに多くのオーバーヘッドが追加されるため、1を割り当てる方がよいでしょう。

ケースには最大5つのコアを含めることができます。それを超えると、仮想マシンが不安定になります。

仮想ボックスでは、使用するコアの最大数を物理コアのn-1にすることをお勧めします。ハイパースレッディングはカウントされません。

仮想ボックスフォーラムのこのスレッドはこれをサポートしています。

1
VBwhatnow

プロセッサi73930KにはVT-xが搭載されています。

Intel®VirtualizationTechnology(VT-x)を使用すると、1つのハードウェアプラットフォームを複数の「仮想」プラットフォームとして機能させることができます。ダウンタイムを制限し、コンピューティングアクティビティを個別のパーティションに分離することで生産性を維持することにより、管理性が向上します。

つまり、処理できるスレッドよりも数個多いCPUをシミュレートできるため、仮想マシンを使用するときに使用可能なCPUの数が多くなります。

0
Peter

私の場合、4コア8スレッドプロセッサで8個のCPUのうち6個を使用すると、VirtualBoxが劣化する可能性があると警告したにもかかわらず、テストでは8個中4個よりも高速でした。
つまり、VirtualBoxは、初心者の場合は足を撃たないようにし、速度が遅いと不満を言うでしょうが、スーパーユーザーとしてはこの注意を却下することができます。

長い答え:

私は Intel-Core-i7-2820QM 4コアと8スレッドを持っています。 Windows10ホストとゲストを搭載したVirtualBox5.2.6を使用しています。

Virtual BoxGuestの設定で6CPUsout 8を設定すると、次の値が serbenchmark になります。

マルチコア
 
 MCInt 307 
 MC Float 326 
 MC Mixed 315 
 47%316ポイント
 
 
クアッドコア
 
 QCInt 270 
 QC Float 272 
 QC Mixed 268 
 61%270 Pts 

CPU-Z:

enter image description here

設定4 CPUs:

ユーザーベンチマーク

マルチコア
 
 MCInt 260 
 MC Float 269 
 MC Mixed 269 
 40%266 Pts 
 
クアッドコア
 
 QCInt 260 
 QC Float 264 
 QC Mixed 262 
 59%262 Pts 

CPU-Z:

1108 4.21 6

注:

テスト実行中に熱スロットリング(摂氏100度のときに発生)は発生しませんでした。

997 3.37 4

0
Dzmitry Lahoda