仮想マシンのCPU速度を制限しますか?


29

仮想マシンのCPU速度を制限する方法を知っている人はいますか?それとも、これを可能にする仮想化ソフトウェアさえあれば?

特定のOSイメージがある場合、システムの最小要件を見つけようとしています。RAMとハードディスクのサイズとコアの数を制限する方法はありますが、実際にシステム構成をシミュレートするには、CPUを800 MHzに遅くする必要があります。また、仮想マシンを実行しているコンピューターはWindows 7マシンです。

回答:


21

同じ問題を抱えており、Windows 7(ホストとして)およびUbuntu(ゲストとして)にOracle VirtualBoxをインストールしました。1.87 GigHZおよび8Gig RAMで動作するIntl Core i7を備えたHP EliteBook 8540Wのスタンドアロンラップトップを使用しました。

インストールが正常に動作すると仮定して、ゲストマシン(私の場合はUbuntu)で、メインメニューの[マシン]から[設定...]を選択します。「システム」を選択し、「プロセッサ」タブをクリックします。バーのインジケータを1パーセントまでスライドさせて、クロック速度(「実行キャップ」とラベル付けされています)を調整できます。

ホストOS(私の場合はWindows 7)がクロックサイクルを消費していないと仮定しました(「タスクマネージャー」を確認することでこれを確認し、ホストマシンでゼロCPU使用率を見つけました。つまり、Windows 7です)。したがって、100%の「実行上限」がホストマシンの実行上限に等しいことを確認しました(例:1.87 GigHZ)。ホストマシンのクロック速度と800 MHZの間の割合を取ることで、800 MHZに対応する割合の値を把握できると思います。

これがお役に立てば幸いです。

幸運を祈ります。


9

VMWare ESXおよびESXiでは、リソースプールを作成し、そのプールのCPUリソースを制限できます。これにより、そのリソースプールで作成されたシステムのCPU速度を制限できます。


リソースプールオプションについて読んで、プレーヤーに適用されると思いました。悲しいことに、これはそうではありません。そして、ESX / ESxiは無料ではありません...しかし、私は試用版を試してみるかもしれません。
RCC

6
ESXiは無料です。(さらにいくつかの文字...)
タルネイカルマン

本当に?何らかの理由で、私はそれがそうだとは思わなかった。しかし、私は修正されたままです!それを指摘してくれてありがとう。
RCC


2

私はすべての異なる仮想化テクノロジーの専門家ではありませんが、そのような設定が見つかる可能性は低いと思います。ただし、仮想マシンをホストマシン全体のアクションの割合に制限できる設定(少なくともMS Hyper-Vの場合)があります。そのため、2 GHzで8コアのホストを実行している場合、クライアント仮想マシンを1コアに制限してみてください。コアの45%以下に制限します。

ただし、これは非常に粗雑なものであり、タイミングループや実際のプロセッサ速度が作用する場所をテストしようとしている場合には適していません。


それを行うプログラム、つまりプロセスごとのCPU使用率を制限するプログラムをいくつか見ましたが、Linuxオプションしか見ていませんでした。確かに、私はそれらをあまり調べていません。MaxMackieへの応答で説明したように、私が試みている解決策が機能しない場合は、これらのオプションをさらに検討します。
RCC

ええ、これはタイミングループに本当に悪い影響を与える可能性があります。それは、最大速度で最大45%実行してから切断するか、実際に45%で実行しようとするかによって異なります。
ザンリンクス

2

--cpuexecutioncap <1-100>:この設定は、仮想CPUが使用できるCPU時間を制御します。値50は、単一の仮想CPUが単一のホストCPUの最大50%を使用できることを意味します。


1
より多くの情報があれば、この答えは受け入れられます。
ラムハウンド14年

1

これはVirtualBoxではサポートされていないことを確認できます。ただし、ドキュメントはVMwareがこれを行うことができるかどうかについて不確かなようです。

編集:VMwareの場合:「これはPlayerおよびServer製品では不可能ですが、ESXi(無料の「ベアメタルハイパーバイザー」製品)およびVMWare Workstationなどの有料製品にあると思います。」


私もそれを確認できます-VirtualBoxですべてを設定し、それを発見しました。私は現在VMwareを使用しており、config.iniファイルを変更してhost.cpukHzを800000に制限しようとしました。これにより、仮想マシンがCPU MHzが800であると偽装しているように見えます。それに、しかしそれは私が望んでいることです。アイデア?
RCC

私が見たことから、それは動作するはずです。同じ設定ファイルでhost.noTSC = "TRUE"を設定してください。これにより、CPUクロックが調整され、速度が低下しないようにします。また、ゲストオペレーティングシステムで、[オプション]タブに移動し、仮想マシンとホストオペレーティングシステム間の時刻同期が選択されていることを確認します。
-n0pe

はい、host.noTSc = "TRUE"もあります。ただし、vmware playerでvmとホスト間の時間同期を有効にする場所を見つけることができませんでした...-
RCC

ゲストOSで実行する必要があると確信しています
-n0pe

1

CPUピンでこれをシミュレートできる場合があります。次に、同じCPUに固定されたCPUバウンドプロセスを作成します。推定CPU速度は(実CPU速度/プロセス数)です。

一部のリソース制限ソフトウェアでは、リソースの割合を制限できます。これにより、CPU速度を制限しやすくなります。そのためには、スペアリソースへのアクセスを無効にする必要があります。


0

VirtualBOXには、ゲストCPUが使用できるホストCPUの割合を設定できるスライダーがあります。そのような割合は各コアに適用されます。

VirtualBOXでは、各コアの速度が異なるマルチコアをシミュレートする方法はなく、すべてのコアに1つのスライダーしかありません。

スライダーを50%に設定すると、ゲストコアはホストコアの1/2(コアごとの基本)で実行されます。

したがって、ホストにデカコア(10コア)があり、ゲスト(3コア)にトライコアがあり、ゲストがX MHzで実行され、ホストがY MHzで実行されるようにする場合は、コアの数を無視してパーセントを計算します。

式は次のようになります。パーセント= 100 * X / Y

これが将来ここに来る他の人々にも役立つことを願っています。

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