ベスト プラクティスとして、開発には仮想マシンを使用しています。VM をできる限り最適化するように努めたいと考えています。私がインストールしたのは、サーバー 2003、IIS、および Visual Studio 2008 だけです。開発 VM を最適化するために何をしますか。つまり、どのサービスをオフにしますか...
10 に答える
いつものように、普遍的に「正しい」または「最良」の推奨事項のセットはありません。ただし、これらは私の開発仮想環境でうまく機能した項目の一部です。
ハードウェアのヒント
メモリーたっぷり!
各仮想マシンが必要とするメモリ量と、ホストが必要とするメモリ量を決定します (ホストで同時に実行している場合)。同時に実行されるすべての VM のメモリ要件の合計を合計し、最大 VM RAM 負荷を決定し、ホスト負荷を追加します。少なくとも 512MB の「パディング」を用意することをお勧めします
たとえば、ホスト OS (WinXP Pro SP3) には約 768MB、ゲスト OS (WinXP Pro SP3 w/ Visual Studio 2005/2008 および SQL Server Developers Edition) には約 1GB が必要です。1024MB + 768MB + 512MB = 2.3GB
個人的には、現在 RAM が信じられないほど安いので、32 ビット システムを 4GB (3.5 アドレス可能) で使い果たしました。
OS と VM 用の個別のスピンドル
OS ディスクとは別のディスクを用意して、仮想マシン イメージを実行します。これにより、ホストとゲスト間のディスク I/O の競合が大幅に減少します。
注:外付け HDD を使用してスピンドルを分離すると効果的ですが、注意してください - Firewire と USB は、IDE、SATA、または SCSI よりも待ち時間が長くなります! USB 2.0 および Firewire インターフェイスには、最大のディスクスループットに十分な帯域幅がありますが、各操作にかなりの遅延が追加されます。これは、C++ コンパイルなど、ディスク トランザクションが多く、ファイル アクセスが小さい状況で非常に重要になります。eSATA でいくつかのテストを実行して、内部 SATA アクセス時間と比較してパフォーマンスがどれだけ優れているかを確認する機会はまだありません。
アクセス時間の短いディスクを使用する
開発中、特に C++ などの言語でのコンパイル中には、かなりのランダム ディスク アクセスが発生します。VM に 5400 RPM ドライブよりも 7200 RPM を使用すると、アクセス時間が短縮され、コンパイル時間が短縮されます。10,000RPM またはハイエンド SSD に移行すると、これらの時間がさらに短縮されます。収穫逓減のポイントは、環境の特定のディスク アクセス負荷/パターンによって異なります。
ホストのヒント
仮想マシン ファイル ウイルス スキャンの無効化
仮想マシンのディスクを絶えずスキャンしないように、仮想マシン ディレクトリまたは .vmdk ファイル拡張子を無視するようにウイルス スキャナに指示します。
CPU の競合を避ける
一度に複数の仮想マシンを実行している場合、またはホスト OS とゲスト OS の両方で作業を行っている場合は、マルチコア/プロセッサ マシンでホスト OS 用に少なくとも 1 つの CPU を節約してください。たとえば、2 つの仮想マシンを実行していて、ホスト OS で作業を行っていない場合は、シングル コアの仮想マシンを備えたホスト上のデュアル コア プロセッサがおそらく最適です。
単一の仮想マシンを実行していて、ホスト OS で作業していない場合、仮想マシン アプリケーションが 2 番目のプロセッサを利用できる場合は、デュアル プロセッサ VM を実行すると役立つことがあります。
シングル プロセッサとデュアル プロセッサの 2 つの仮想マシンを実行している場合は、おそらくクアッド コア システムを実行する必要があります。
VMware 注(他の仮想化アプリケーションでは確認されていません): 仮想マシンに複数のプロセッサを与えると、両方のプロセッサが使用可能になるまで待機し、それらを使用していない場合でもそれらを予約します。これにより、仮想マシン間または仮想マシンとホスト間で重大な競合が発生する可能性があります。
ゲストのヒント
十分なメモリを割り当てる
仮想マシンの需要をカバーするのに十分な RAM を割り当ててください。
スナップショットの使用を避ける
本当に必要でない限り、スナップショットは使用しないでください。スナップショット ベースの仮想マシン ファイル システムの維持に関連して、重大なディスク I/O ペナルティがあります。
不要なサービスを実行しない
そのような:
- 索引付け
- システムの復元
- エラー報告
- ワイヤレス ゼロ構成
セキュリティソフトを起動しない
VM 内でウイルス対策、スパイウェア対策、またはファイアウォール ソフトウェアを実行しないことを検討してください。ここでは、セキュリティと速度の長所と短所を比較検討する必要があります。多くの場合、ウイルスに感染しても問題はなく、以前のコピーまたはスナップショットを復元するだけです。その他の場合、機密情報が公開される可能性があるため、VM 内であっても厳格なセキュリティ ポリシーが必要です。
VM 内でウイルス対策ソフトウェアやファイアウォール ソフトウェアを実行していないことが、Windows の VM が物理ホスト OS の VM よりも「機敏」に感じることが多い最大の理由であると言えます。
デフラグ!
残念ながら、VM 構成でファイルの断片化が発生する可能性のある場所は 3 つあります。ゲスト OS のファイルシステム内、VM の仮想マシン ファイル (vmdk など) 表現内、および物理ディスク自体の仮想マシン ファイルです。それぞれを最適化する順序が重要です。
- まず、ゲスト OS 内のファイルシステムを最適化します (たとえば、ゲスト OS でディスク デフラグ ツールを実行するか、ゲスト OS 内で JkDefrag や Defraggler などのツールを使用します)。
- 次に、vmware-diskmanager などのツールを使用して、仮想マシン ファイル (VMDK など) を最適化します。
- 3 番目に、仮想マシン ファイルを保持するホスト上のファイル システムを最適化します (つまり、ホスト OS でディスクの最適化を実行します)。
ファイル システム インデクサーをオフにして、ディスク容量と CPU 時間を節約します。
Windows XP 仮想 PC では、常に「システムの復元」を無効にしています。
オン アクセス スキャンのウイルス ガードからビルド フォルダーを除外する
これらは、VM でオフにするサービスです
- シャットダウン イベント トラッカーをオフにしました
- c:\ のインデックス作成をオフにしました
- エラー報告サービスがオフになっている
- スマート カード アクセスがオフになっている
- TCP/IP NetBIOS ヘルパー
- リモート デスクトップ ヘルプ セッション マネージャー
- リモート レジストリ
- 無停電電源装置
- Windows オーディオ
- ワイヤレス ゼロ構成
ディスクイメージを外付けHDD(USBでも)に置くと、パフォーマンスが向上します(特にラップトップの場合)
ここに仮想マシンのパフォーマンスに関する素晴らしい記事があります
特に SharePoint 仮想マシンについて書かれていますが、一般的に適用できるヒントがたくさんあります。
VMware Serverを使用しているときに、Windowsページファイルを無効にします。ディスクIOはVMWareServerとの最も弱いリンクであり、仮想化RAMを仮想化ディスクファイルにページングすることほど悪いことはありません。VMに十分なRAMを与えると、これはかなりうまく機能します。
また、すべての仮想化ソリューションが異なる領域で同じように機能するわけではありません。VMwareはVMイメージの安定性とモビリティに優れていますが、時間があれば他のソリューションを試してみることをお勧めします。ディスクIOパフォーマンスが向上すると、全体的なエクスペリエンスが向上することがわかったので、VMwareサーバーのCPUパフォーマンス(および残念ながら全体的な安定性)の向上と、VirtualBoxのIOパフォーマンスの向上を交換しました。無料ではないVMwareバージョンの方がはるかに優れているかもしれませんが、私にはわかりません。
ディスクイメージを別のドライブに置いても、それほど多くは購入できないことがわかりました。多くの人がこれについて議論するでしょう、そしてそれはあなたにホストで他にどれだけ起こっているかに応じてあなたにもう少しパフォーマンスを与えることができます、しかし私にとってそれは限界でした。生のディスクも使ってみましたが、思ったほどうまくいきませんでした。
IOのパフォーマンスを実際に損なうものの1つは、スナップショットをアクティブにして実行することです。これは、ほとんどの実装でコピーオンライト戦略を使用しており、ディスクパフォーマンスの20%の低下が期待できます。
Questのこの無料ツールを使用して、仮想デスクトップを最適化できます。それはたくさんのものをオフにします。
完全な開示:私はQuestで働いていますが、このツールでは働いていませんでした。
ホストの OS 用と VM 用の 2 つの SSD。