ハードウェア/オペレーティングシステム/ソフトウェア

ハードウェア/オペレーティングシステム/ソフトウェア

VirtualBox:私が見るにはハイパースレッディング可能なCPUについて知りたいです。

次の警告に示すように、物理CPUコアの数よりも多くの仮想CPUコアを割り当てることは悪い考えではありません(たとえば、4つの物理コアCPUの8つの仮想コアのみを使用)。

ハイパースレッディングを使用している場合のVirtualBox CPU警告

性的証明書:

仮想マシンに割り当てられている仮想CPUの数が、ホストシステムの物理CPUの数(4)を超えています。これにより、仮想マシンのパフォーマンスが低下する可能性があります。仮想CPUの数を減らすことを検討してください。

誰もこのトピックについて明らかにできますか?

問題のCPUはIntel Core i7-4700HQです。アークインテルCPUベンチマーク

HDD(SSDではなく)や低RAM(ここでは少なくとも16GB)などの古いハードウェアがないとします。vm.swappiness、このVMは4GB)などです。

答え1

ハードウェア/オペレーティングシステム/ソフトウェア

所有者:Linux Mint 18 Cinnamon 64ビット(完全アップデート)カーネルバージョン4.4.0-47 - 一般

ゲスト:Windows 8.1 Pro 64ビット(完全アップデート)

プロセッサ:インテルCore i7-4700HQ、(6MBキャッシュ、4つの物理コア、または8つの使用ハイパースレッディング)、CPUベンチマーク

仮想ボックス:バージョン5.1.10 r112026(Qt5.5.1)

ゲストサプリメント:インストールされており、最新の状態です。

ベンチマークツール #1:WinRARバージョン5.40最終64ビット

ベンチマークツール #2:VeraCryptバージョン1.19最終64ビット


準備する

どちらの場合も、起動後にCPU、RAM、ディスクドライブがゼロに近づくまで待ちます。


方法

  1. 元の仮想マシンを複製し、2つの同じ仮想マシンを持ちます。
  2. 2番目に、私はこの回答の一番下に再起動してウイルス対策を無効にし、どちらの場合もWinRARをベータ版から最終版に更新するように指示しました。
  3. 前述のものと同じ準備をしました。
  4. 仮想マシンはフォアグラウンドで実行されており、CPU時間を占める他のアプリケーションは実行されておらず、テストに問題が発生しないようにすべての可能な機能を無効にしました。
  5. システムの内部または外部の潜在的なキャッシュを含めるために、同じテストを2回連続して実行しました。恩恵はほとんどありません。

結果

減圧ツール

  1. 4コア=>7.5分(短く時間が良いです)

    4コアが有効なWinRAR

    WinRARと4コア活性化、1.5GiB処理7.5分。

  2. 8コア=>4.5分(短く時間が良いです)

    8コアが有効なWinRAR

    WinRARと8コア活性化、1.5GiB処理4.5分。


ベラコード

  1. 4コア=>スピード2.6GiB/秒(高いスピードが良くなる)

    4コアが有効なVeraCrypt

    VeraCryptと4コアのアクティブ化、ハードウェアアクセラレーション AES(AES-NI)スピード2.6GiB/秒

  2. 8コア=>スピード3.9GiB/秒(高いスピードが良くなる)

    8コアが有効なVeraCrypt

    VeraCryptと8コアのアクティブ化、ハードウェアアクセラレーション AES(AES-NI)スピード3.9GiB/秒


結論として

好きなだけ多くのテストを実行できます。しかし、これらの2つのうちの1つはかなり複雑な圧縮テストであり、2つ目はかなり複雑な暗号化テストセットであれば、ポイントは何ですか?

両方のベンチマークは、明確な違いを示しています。私はかなり厳しい準備と方法論に従い、I / Oボトルネックを排除するためにRAMでテストを実行したため、結果が正しくないと信じる理由はありません。私の観点からは、質問に記載されている警告はいくつかの場合に適用される可能性がありますが、必ずしもすべてではありません。これらの驚くべき結果をあなたと共有した後、次のような最新のCPUは、この警告をそのように真剣に受け入れてはならないことに同意することを確信しています。ハイパースレッディング最新のVirtualBoxバージョンを使用してください。一つは確かです。この設定を永久に適用することを決定する前に、自分の言葉をそのまま受け入れないで、自分の条件でテストしてください。


新しいベンチマーク

ホスト+ゲスト:Linux Mint 19.2 "Tina" - シナモン(64ビット);両方カーネルが付属しています: 5.3.0-24-generic

プロセッサ:インテル®Core™i7-7700HQ; 6MBキャッシュ、最大3.80GHz、物理コア4個、またはハイパースレッディング使用時8個、CPUベンチマーク比較

仮想ボックス:バージョン6.1.0 r135406(Qt5.9.5)

ゲストサプリメント:インストールされており、最新の状態です。

ベンチマークツール:VeraCryptバージョン1.24 Hotfix1 64ビット最終バージョン(Webページ直接 deb ダウンロードリンク)


準備と方法

以前のベンチマークと同じです。


結果

VeraCrypt 4コアAES暗号化

⟶ 速度 4.8 GiB/s (速度が速いほど良い)

VeraCrypt AES暗号化4コア=速度4.8GiB/s


VeraCrypt 8コアAES暗号化(ハイパースレッディング警告)

⟶ 速度 7.2 GiB/s (速度が速いほど良い)

VeraCrypt AES暗号化8コア=速度7.2GiB/s

結論として

驚くべき50%のパフォーマンス向上ハイパースレッディング有効になっていますが、残念ながら、AESに対してのみより包括的なテストを実行する必要があります。数日後に結果をもって戻ってきます。

答え2

オペレーティングシステムの設計者として、私は測定値に同意できませんでした。このトピックに関して他の場所で書かれたナンセンスの量は信じられないほどです。

論理コアの数は、ハードウェアが実行できる並列スレッド/プロセスの数と考えてください。これは、CPUコアのレジスタと命令ポインタをコピーすることによって行われます。これで、CPUコアは使用するスレッド(コマンドポインタ)を独自に決定します。現在のスレッドの命令をキャッシュから使用できず、メモリまたはL3キャッシュから取得する必要があるため、別のスレッドを使用することにします。このメカニズムは、1秒あたりの命令またはCPUパフォーマンスを潜在的に10%〜30%増加させます。

1つのスレッドを使用して単一のアプリケーションを実行すると、この利点は得られませんが、古いHT Pentiumで2つの高負荷アプリケーションを実行するとこの利点が得られます。もちろん、マルチスレッドを使用するアプリケーションの場合も同様です。私のLinuxシステムには200のスレッドがあるので、実際の負荷に応じて常にいくつかの利点があります。これらの説明はすべて仮想化なしで適用されます。

Virtualboxは各仮想マシン(VM)が並列に実行できるスレッド数のみを制限しますが、ホストプロセススケジューラは論理プロセッサを変更するため、VMプロセスが動的に実行される物理プロセッサも変更されます。仮想マシンで負荷の高いアプリケーションを実行している場合、追加の論理コアは同じ利点の10%〜30%を提供します。ワークロードは、単一のマルチスレッドアプリケーションでも、さまざまなアプリケーショングループでもかまいません。

VT-xまたはAMD-Vを使用する最新のシステムでは、より多くの仮想マシンを同時に実行しても大幅なパフォーマンス低下がないため、論理コアの数を最大化してもパフォーマンスの低下はありません。制限はCPUチップのパフォーマンスなので、3つの仮想マシンが同じ物理CPUを共有する必要があるため、各仮想マシンの速度を遅くせずに3つの仮想マシンでビデオをレンダリングすることはできません。

すべての論理コアが存在する仮想マシンでビデオをレンダリングすると、ホストシステムが応答しなくなる可能性がありますが、ホストでレンダリングアプリケーションを実行してもほぼ同じ問題が発生します。少なくともVMには、最大CPU負荷を80%〜90%に制限するか、コア数を減らしてこの問題を解決するオプションがあります。

答え3

私が最善を尽くすことは、すべてのコア/スレッドを絶対に使用せず、ホストシステムに1つまたは2つだけを使用することです。

したがって、お客様には、8番目のコアではなく6つのコアをゲストに提供してください(ホストには8つのスレッドしかありません)。

ホストで使用可能なスレッド数(カーネルと混同しないでください)が次の場合:

  • <2の場合は、仮想マシンをまったく使用しないことをお勧めします。
  • 2の場合、シングルコアモードでVMを使用したり、デュアルコアゲストを使用したりする危険があります。
  • >2なら公式を使うのがいい

スレッドが2つ以上の場合は、次の式を使用する傾向があります。

  • N = ホストスレッド数
  • M = 実行する同時VMの数(ゲストごとに同じ数のゲストコアがバランスを取っていると仮定)
  • ホストに4つ以下のスレッドしかない場合、公式=(N-1)/ M
  • ホストに4つ以上のスレッドがある場合、公式=(N-2)/ M

私の経験によれば、そのような式の限界を超えていない方がスムーズで危険性が低くなります。

警告:ゲストを実行するときにゲストコアの数を変更することは許可されていませんが、CPU使用率を100%から75%、さらには50%まで減らすことは許可されており、ゲストが失敗する可能性があります。

そのため、8スレッドホストの2人のゲストに6コアの6つを提供する傾向があります(公式の数字はゲストが2つではなく1人だけのものと同じです)、CPU速度の50%に制限されます(したがって、2つのゲストは、1/2 CPU 時間を使用できますが、ゲストが画像比較/結合など、並列処理率が 1 より大きいアプリケーションを実行していることがわかっている場合にのみ可能です。

関連情報