web-dev-qa-db-ja.com

VMで遅いマシンをどのようにシミュレートできますか?

AJAXを多用したWebアプリケーションをテストしています。新しいMacで開発していますが、VmWare Fusion(現在は3.1.2)を使用してWindows XPでテストし、 IETester を使用して古いバージョンのIEをシミュレートしています。

これにより、IEバージョンでサイトがどのようにレンダリングされるかを確認できますが、サイトが古いマシンでどのように実行されるかを確認したいと思います。VMの設定で、 RAM;プロセッサの速度を下げる方法はありますか?遅いマシンを他にどのようにシミュレートできますか?

(私もチェックアウトします 遅いインターネット接続をシミュレートする方法 。)

29
Nathan Long

スレッド 仮想マシンのCPU速度の制限 はいくつかのアドバイスを提供します:

  • VMWare ESXおよびESXiでは、リソースプールを作成して、そのプールのCPUリソースを制限できます。これにより、そのリソースプールで作成されたシステムのCPU速度を制限できます。
  • MS hyper-Vの設定により、仮想マシンをホスト全体のパーセントに制限できます。したがって、8 GHzのホストが2 GHzで実行されている場合、クライアント仮想マシンを1つのコアに制限し、コアの45%以下に制限することができます。

Virtual PC Guyは 仮想マシンのスローダウン に次のようにコメントしています。

たとえば、Virtual Serverで最大10%のCPUリソースを使用して仮想マシンを設定すると、一定の期間にわたって、システムの合計スケジューリング時間の10%だけCPUで実行できるようになります。仮想マシンの実行中は、フルプロセッサの速度で実行されます(ただし、他の方法で実行する場合よりも頻度は低くなります)。

代わりに Turbo を使用してVMの速度を低下させることをお勧めします。 DOSBoxBochs などの仮想化よりもはるかに遅いエミュレーション製品を使用することも提案しています。

17
harrymc

cpulimit を使用して、プロセスに割り当てられる処理時間を制限できます。これは、ほとんどのLinuxディストリビューションのリポジトリで利用できます。

使用法は非常に簡単です。たとえば、VMがプロセス12345として実行されていて、CPUサイクルの5%だけをそれに割り当てたい場合は、次のオプションを使用します。

$ cpulimit -l 5 -p 12345
7
pfrenssen

古いマシンのパフォーマンスと確実に一致させることは実際には不可能です。 CPUの使用量とメモリを調整できたとしてもsizeでも、FSB速度またはメモリspeed

そうは言っても、Macのプロセス管理ツールを使用して、VMWare Fusion自体のCPU使用率を制限できます。古いマシンをエミュレートするのに十分にこれを行うと、VMWareアプリケーション全体がおそらく非常に遅く実行されます-ビンテージのXP対応マシンのように。

このためのグラフィカルMacプログラムが何であるかはわかりませんが、お使いのMacがreniceコマンドをサポートしているかどうかを確認してください。ターミナルを開き、man reniceと入力して、Macでの動作を確認します。

ちなみに、XP対応のマシンは、おそらく今のところ安価です。本当のものはたぶん〜$ 75のために持っていたかもしれません。次に、仮想マシンを実際のマシンに転送できます...

4
jpaugh

VMを遅くする確実な方法の1つは、できる限り多くのクローンを起動することです!

プロセッサ、FSB、RAMおよびマシンの他のすべての高速コンポーネントは、他のVM間でスライスおよびダイシングされます(それらが集中的に何かを実行している限り-openGLスクリーンセーバーの1つ例)そして、あなたはあなたが再び1990年にいるように感じるでしょう...

2
Haqa

これは、エミュレートするマシンの速度に依存します。 XP 128 MBのRAMに戻すと、非常に遅くなり、仮想プロセッサの速度が実際に関連するかどうかわからないほどになります。また、 VM古いUSB1外付けハードドライブからのファイル(4200 RPMドライブを見つけることができるかどうかを確認してください)。

2
Kirk

ゲストに小さなユーティリティXP VMをインストールして、XPの組み込みの動的周波数切り替えを使用してCPU周波数を制御します。たとえば、 SpeedswitchXP のようなユーティリティです。私はこのようなことを自分で試したことはなく、VMWareがゲストに提示する仮想CPU VMが動的周波数切り替えをサポートしていない場合は、問題が発生する可能性があります。

1
queso

私は調整可能なスリープコマンドで無限ループスレッドを使用し、プロセスの優先順位を設定するというアイデアを楽しませるでしょう。 Cコードの短いチャンクを一緒に平手打ちしたい場合は、私に知らせてください。

0
RobotHumans