Virtual Boxの実行中にCPU使用率を減らす方法は?


12

VirtualBoxを実行すると、システムでCPU使用率が100%になるという問題に直面しています。詳細を次に示します。

私のシステム情報:

CPU 1名: Intel(R)Pentium(R)Dual CPU T2310 @ 1.46GHz
CPU 1レベル1キャッシュサイズ: 32Kデータキャッシュ。32K命令キャッシュ。

CPU 1レベル2キャッシュサイズ: 1024K統合キャッシュ。
CPU 1 Mips: 2926.20
CPU 2名: Intel(R)Pentium(R)Dual CPU T2310 @ 1.46GHz
CPU 2レベル1キャッシュサイズ: 32Kデータキャッシュ。32K命令キャッシュ。

CPU 2レベル2キャッシュサイズ: 1024K統合キャッシュ。

CPU 2 Mips: 2925.96
64ビットCPU?はい!
総メモリ: 2.0 GB
総スワップ: 6141 Mバイト


私のオペレーティングシステム情報:

Kubuntu OSバージョン: 11.04
カーネルバージョン: 2.6.38-8-generic
カーネルアーチ: i686
デフォルトシェル: / bin / bash


私の仮想ボックス設定:

OSタイプ: Windows XP
ビデオメモリ: 32 MB
アクセラレーション: 3D
ベースメモリ: 512 MB

問題の詳細:

さて、VirtualBoxからWindows XPを実行するたびに、CPU使用率はほぼ100%になります。ホストされているWindows XPバージョンでプログラムが実行されていなくても、システムが低速になります。

パフォーマンスをわずかに向上させるために、設定を操作する方法があるかどうか疑問に思っていました。私のPCはLinuxオペレーティングシステムで比較的高速です。VirtualBoxの設定を構成する際に、より良い結果を得るために従うべきヒントがあるかどうかを知る必要があります。

提案/アイデアは大歓迎です!


つまり、VMの実行速度が遅いということですか、それともシステム全体のことですか?持っているCPU かなり弱いので、VMを実行すると100%に達するかどうかは疑問に思わないでしょう。
-slhck

CPUは低速ですが、Athlon XP 2800+のSUSEホストでXPを問題なく実行し、2 GIBのR​​AMを搭載しています。このシステムは、私のシステムよりも何倍も高速です。VirtualBoxとXPを問題なくニュートラルで実行できるはずです。関連するコンピューターの仕様の素敵なリストについても+1。
-AndrejaKo

同じコンピューター上の複数のオペレーティングシステムで同じ問題に直面しています。以前は、Linux Mint、Ubuntu、Slax、Fedoraを使用していましたが、CPU使用率に関して同様の問題に直面していたようです。ただし、VMの設定を「適切に」微調整できれば、パフォーマンスを少し「向上させる」ことができると考えています。
コンパイル

私が現在使用している一時的な解決策は、10秒ごとにページキャッシュ、歯、およびiノードを解放するbashコマンドを実行する無限ループです。この奇妙な手法を使用することを考えた後、私のVMは少し息をすることができましたが、それはそれを行う適切な方法ではなく、むしろ「ハック」です。
コンパイル

1
悲しいことに、T2310には仮想化拡張機能VT-x(ark.intel.com/Product.aspx?id=32431)がないため、Virtualboxはソフトウェアを使用して、ゲストが行うすべての高特権CPU呼び出しをキャッチします。 Virtualbox自体は、ゲストOSに対応するためにより多くのCPUパワーを使用します。また、私は... RAMのゲストOS 1ギガバイトを与えること、それはしばしばとしてVirtualboxのホスト・高価なページフォールトを行う必要がないので、それはより良いアイドル助けるかもしれないかどうかを確認するために好奇心だろう
Mokubai

回答:


5

CPUデータシート(http://ark.intel.com/Product.aspx?id=32431)にあるように、T2310の上の私のコメントを詳しく説明すると、仮想化拡張(VT-x)が欠けています。

このWikipediaの記事から、VMのパフォーマンスの測定可能な低下(したがって、ホストのCPU使用率の増加)を引き起こす3つの基本的なことがあります。

  • バイナリ変換はPOPFなどの特定の命令を書き換えるために使用されます。これは、リング0を超えるとサイレントモードで失敗するか、動作が異なるため、従来のトラップアンドエミュレート仮想化を不可能にします。パフォーマンスを改善するには、変換された基本ブロックを一貫した方法でキャッシュして、コードパッチ(たとえばVxDで使用)、ゲストOSによるページの再利用、または自己修正コードを検出する必要があります。

  • プロセッサが使用する多くの主要なデータ構造をシャドウイングする必要があります。ほとんどのオペレーティングシステムはページ化された仮想メモリを使用し、ゲストOSにMMUへの直接アクセスを許可すると、仮想化マネージャーによる制御が失われるため、x86 MMUの作業の一部を、テクニックを使用してゲストOSのソフトウェアに複製する必要がありますシャドウページテーブルと呼ばれます。これには、アクセス試行をトラップし、代わりにソフトウェアでエミュレートすることにより、ゲストOSから実際のページテーブルエントリへのアクセスを拒否することが含まれます。

  • I / Oデバイスエミュレーション:ゲストOS上のサポートされていないデバイスは、ホストOSで実行されるデバイスエミュレーターによってエミュレートする必要があります。

ゲストオペレーティングシステムは、必要な特権命令の使用を必要とする操作に対して大々的に耳にします。通常、これらのオーバーヘッドはIntel VT-xおよびAMD AMD-V仮想化拡張機能の使用により大幅に軽減されます。プロセッサにはこれらの拡張機能がないため、キャプチャとエミュレーションのすべての作業によってパフォーマンスが低下します。

私の推奨事項は次のとおりです。

  • 仮想マシンに実行する必要があるページングの量を最小化するために必要なだけのメモリを割り当てるために、おそらくワークロードに応じて1GB以上。

  • 3Dドライバーへのすべての呼び出しをエミュレーションレイヤーにプッシュする必要があるため、3Dアクセラレーションを無効にしてください。そのため、プロセッサに負荷がかかる可能性があります。

  • ゲストオペレーティングシステム用のVirtualbox Guest Additionsをインストールします。これらは、仮想環境をよりよくサポートするドライバーを使用するためです。

  • ゲストオペレーティングシステムの画面解像度とグラフィカルオプションを減らします。

  • ネットワーク(インターネット)アクセスを適切なレベルに維持します。ネットワークに強くバインドされた仮想マシンはVT-xでも高価であり、VT-d(Directed I / O用の仮想化テクノロジー)のメリットもあります。


2

私の答えは質問の他のテキストではなく、質問のタイトルのみに関連しています。私の重点は、より多くの仮想ゲストでのアイドルCPU使用率です(ホスト上の十分な空きメモリ)。

audiodg.exeVirtualBoxを実行しているときにWindowsホスト上のプロセスによって引き起こされるCPU使用率は、中間ゲスト自体の負荷よりも高くなります。これは、簡単に減少または完全に無効にすることでドロップアウトしたことができるオーディオオーディオタブ上のVirtualBoxゲストの設定でチェックボックスを。(閉じた仮想マシンでのみ無効にできます。)

audiodg.exeプロセスは1人のゲストで約5%のCPUを消費しますが、ソース編集などの一般的なアイドルアクティビティ中のラップトップの重要な負荷であり、CPU周波数(80%から40%に減少)、ファン速度に大きな影響を与えますラップトップのバッテリー寿命。私が実行している仮想マシンの多くは、通常、サウンドを必要としないか、時々しか必要としません。(ゲストOSでオーディオを無効にしても効果はなく、仮想マシンも一時停止しませんが、virtualboxゲストの設定は重要です。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.