web-dev-qa-db-ja.com

Windows VM Linux VMおよびUSB3.0HDDと比較して、外部USB3.0SSDから実行する場合は非常に遅い

長い情報:USB3.0外部SSDからWindowsvirtualboxvmdkを実行しようとしています。私が使用しているシステムは、この外部SSDにもインストールされているArchLinuxです。 VMは、(外部SSDでシステムを使用しているときに)内部SSDからロードすると正常に動作します。LinuxVMロードされた場合も同様です。外部SSDから(外部SSDでシステムを使用している間も)。

簡単な情報:外部SSDは、M2からUSB3.0へのアダプターを備えたsamsung 850 evo 512GB(M2 Verison)です。上記のように、他のVmsで、Windowsを実行している場合VM内部SSDから、または外部USB3.0 HDDからでも(これは遅いですが、この場合は外部SSDよりもはるかに高速です) ) 正常に動作します。

VM設定:

16GB ram
chipset PIIX3
I/O APIC enabled
Hardware Clock UTC Time enabled
4 Cores 100% (4.5Ghz)
VT-x enabled

問題:VMは正しく起動しますが、ホストシステムが時々フリーズし、ログインに到達します約20分後に画面が表示されます。ディスクの問題のようでした。内部SSDからvmをロードし、ディスク書き込みを減らすためにWindowsディスクページング機能を無効にしました。次に、変更したvmdkを外部SSDにコピーし、外部のVirtualboxを変更しました。それに応じてシステム。ただし、これは何も変更しませんでした(RAMを16GBに増やしました)。

仮定何らかの理由で、Windows VMはLinuxVMと比較して非常に多くのディスク書き込みを行います。面白いことです。少し前に、SSDよりも実際にははるかに遅い外付けUSB 3.0ハードドライブで同じことをしたということです(ただし、同じドライブでホストシステムを実行していません)

私は内部SSDと同じSSDを使用しているので、問題は確かにSSDではありません。アダプターは、Linuxシステム、Linux VM、およびその他のプログラムで問題なく動作しているので、それもそうではないと思います。

私はいくつかの情報をログで検索しようとしますが、誰かが別のアイデアを持っているなら、それは大いにありがたいです。

質問:外部SSDのWindows VM)のパフォーマンスを向上させるにはどうすればよいですか? IOトラフィック?

ソリューションコメント:

@Eugen Rieckによって提案されたライトバックキャッシングを使用すると、実際にVMが使用可能になりました。同じ外部SSD上のホストシステムから、余分な量のIOが形成されると思います。 USB3.0コントローラー(キャッシュなし)には多すぎました。Virtualboxでは、次の場所にこのオプションがあります。

Your_VM_Settings->Storage->select_your_Controller->Attributes->Use Host I/O Cache

@Eugen Rieckが言及した欠点に加えて、virtualboxフォーラムの@aeichnerによるともう1つあるようです。

ホストのI/O負荷が高く、ホストキャッシュがそれに対処できない場合、ゲストでI/Oタイムアウトが発生する可能性があるため、ホストI/Oキャッシュはデフォルトでは使用されません。 aeichner、2011

6

悪いニュース:Windows(OSのみ、アプリケーションではない)は、Linuxよりもディスク書き込みが多くなります。 2桁ですが、それについてできることは何もありません。それに加えて、それは1桁多くのディスク読み取りを行います。

良いニュース:ハイパーバイザーレベル(つまりVirtualBox)でライトバックキャッシングを使用すると、状況を大幅に改善できます。これには、ホストがハードダウンした場合にデータが破損するリスクが伴いますが、優れたUPSを使用すれば、これは管理可能であるはずです。

もう1つ:スナップショットを使用する場合は再考してください-スナップショットにはかなりの書き込み増幅率があり、そのようなシナリオでは問題になります。

10
Eugen Rieck