ハイパースレッディング 対応のCPUを持っているので、次の警告が示すように、物理CPUコアの数よりも多くの仮想CPUコアを割り当てることは悪い考えでしょうか。
筆記録:
ホストシステム上の物理CPUの数よりも多くの仮想CPUが仮想マシンに割り当てられます。これは、仮想マシンのパフォーマンスを低下させる可能性があります。仮想CPUの数を減らすことを検討してください。
誰かがこのトピックに理由を付けることができますか?
EDIT1:
問題のCPUはIntel Core i7-4700HQ、 Ark Intel 、 CPUベンチマーク です。
EDIT2:
(SSDの代わりに)HDDのような古いハードウェアはなく、低RAM(ここでは16GB、最小 vm.swappiness
、このVMには4GBなど)。
Host:Linux Mint 18 Cinnamon 64ビット(完全に更新);カーネルバージョン4.4.0-47-generic
ゲスト:Windows 8.1 Pro 64ビット(完全に更新)
プロセッサ: Intel Core i7-4700HQ 、(6MBキャッシュ、4つの物理コア、または ハイパースレッディング を使用して8)、 CPUベンチマーク
VirtualBox:バージョン5.1.10 r112026(Qt5.5.1)
Guest Additions:インストール済みで最新
ベンチマークツール#1: WinRARバージョン5.40最終64ビット
ベンチマークツール#2: VeraCryptバージョン1.19 final 64-bit
どちらの場合も、起動後、CPU、RAM、ディスクドライブがほぼゼロ点のヒットになるまで待機しました。
4コア=>7.5分(短い時間が良い)
4コアを有効にしたWinRAR、1.5GiBは7.5分で処理されます。
8コア=>4.5分(短い時間が良い)
8コアが有効なWinRAR、1.5GiBが4.5分で処理されます。
4コア=>速度2.6GiB/s(速い速度が良い)
4コアを有効にしたVeraCrypt HW-accelerated AES(AES-NI) 速度2.6GiB/s。
8コア=>速度3.9GiB/s(速い速度が良い)
8コアを有効にしたVeraCrypt HW-accelerated AES(AES-NI) 速度3.9GiB/s。
必要なだけテストを実行できました。しかし、私は、これらの2つのうちの1つがかなり複雑な圧縮テストであり、2つ目がかなり複雑な暗号化テストのセットである場合、何がポイントになると考えます。
どちらのベンチマークも顕著な違いを示しています。私はかなり厳密な準備と方法に従っていたので、結果が不正確であると信じる理由はないと思います。さらに、これらのテストはI/Oボトルネックを排除するためにRAMで行われました。立場からすると、質問で言及された警告は、いくつかの条件に当てはまる可能性がありますが、すべての条件に当てはまるわけではありません。これらのかなり驚くべき結果をあなたと共有したので、私はあなたが同意することを確信しています Hyper-Threading を備えた最新のCPUで、最新のVirtualBoxバージョンを使用してください。この設定を永続的に適用する前に、Wordを試して自分の条件でテストしないでください。
Host + Guest: Linux Mint 19.2 "Tina"-Cinnamon(64-bit) ;両方ともカーネル:5.3.0-24-generic
。
プロセッサー: インテル®Core™i7-7700HQ ; 6 MBキャッシュ、最大3.80 GHz、4つの物理コア、またはハイパースレッディングを使用した8 CPUベンチマークの比較
VirtualBox:バージョン6.1.0 r135406(Qt5.9.5)
Guest Additions:インストール済みで最新
Benchmark Tool:VeraCrypt version 1.24 Hotfix1 64-bit final( web page 、 direct deb download link )
以前のベンチマークと同じです。
⟶速度4.8 GiB/s (速度が速いほど良い)
⟶速度7.2 GiB/s (速度が速いほど良い)
Hyper-Threading を有効にすると、パフォーマンスが50%向上しますが、AESを使用した場合のみ、残念ながら、より包括的なテストを実行する必要があります。数日後に結果が表示されます。
OSデザイナーとして、私は測定結果に完全に同意します。主題について他の場所で生成されたでたらめの量は信じられないほどです。
論理コアの数を、ハードウェアで実行できる並列スレッド/プロセスの数として確認します。これは、たとえば、 CPUコアのレジスタと命令ポインタ。 CPUコア自体が、使用するスレッド(命令ポインター)を決定するようになりました。現在のスレッドの命令はキャッシュで利用できず、他のスレッドを使用することを決定します。メモリまたはL3キャッシュ。このメカニズムにより、命令/秒またはCPUパフォーマンスが10%〜30%向上する可能性があります。
1つのスレッドで1つのアプリケーションを実行する場合、この利点を享受することはできませんが、2つの高負荷アプリケーションを実行する場合、たとえば、古いHT Pentiumなら、メリットを享受できます。もちろん、1つ以上のスレッドを持つアプリケーションにも同じことが言えます。私のLinuxシステムには200のスレッドがあるので、実際の負荷に依存するいくつかの利点は常に存在します。これらすべての発言は、仮想化なしで適用されます。
Virtualboxは各仮想マシン(VM)で並列に実行できるスレッドの数のみを制限しますが、ホストプロセススケジューラは論理プロセッサを変更するため、VMプロセスは動的に実行されます。VMで高負荷のアプリケーションを実行する場合、追加の論理コアにより、10%〜30%の同じ利点が得られます。負荷は、単一のマルチスレッドアプリケーションまたは一連のアプリケーションです。さまざまなアプリケーション。
VT-xまたはAMD-Vを備えた最新のシステムでは、同時により多くの仮想マシンを実行することによる顕著なパフォーマンスの低下がないため、論理コアの数を最大にすることによるパフォーマンスの低下はありません。制限はCPUチップのパフォーマンスです。同じ物理CPUを共有する必要があるため、各VMの速度を落とさずに3つのVMで同時にビデオをレンダリングすることはできません。
すべての論理コアが存在するVMでビデオをレンダリングする場合、ホストシステムが応答しなくなる可能性がありますが、そのレンダリングアプリをホストで実行した場合、ほぼ同じ問題が発生します。少なくともVM=には選択肢があり、最大CPU負荷を80%〜90%に制限するか、この理由でコアの数を減らすことで解決できます。
私の最高の2セントは、すべてのコア/スレッドを使用するのではなく、ホストに1つまたは2つだけ使用することです。
したがって、あなたのケースでは、ゲストに6つのコアを与えてください。決して8番目のコアではありません(ホストに8つのスレッドしかないため)。
ホストで使用可能なスレッドの数(コアと混同しないでください)が次の場合:
3つ以上のスレッドの場合、私はこの式を使用する傾向があります。
私の経験では、このような数式の制限を超えないようにする方がはるかにスムーズでリスクが少ないことがわかります。
警告:ゲストの実行中にゲストコアの数を変更することはできませんが、CPU使用率を100%から75%または50%に下げることができます。失敗する可能性のあるゲストは少なくありません。
したがって、2つのゲストに8スレッドのホストで6つの6コア(2つのゲストではなく1つのゲストのみであるかのように式の数)を与える傾向がありますが、それらをCPU速度の50%に制限します(両方のゲストが1を使用できます)/2時間のCPU)、ただし、画像比較/ジョイントなどのように、ゲストが並列比が1より大きい比率のアプリを実行することがわかっている場合のみ。