Windows VM bardzo wolno działa z zewnętrznego dysku USB3.0 SSD w porównaniu z Linux VM i USB3.0 HDD

6

Długa informacja: Próbuję uruchomić vmdk virtualbox Windows z zewnętrznego dysku SSD USB 3.0. System, którego używam, to Arch Linux, który jest również zainstalowany na tym zewnętrznym dysku SSD. Maszyna wirtualna działa prawidłowo, jeśli załaduję ją z wewnętrznego dysku SSD (podczas korzystania z systemu na zewnętrznym dysku SSD). To samo dotyczy maszyny wirtualnej Linux załadowanej z zewnętrznego dysku SSD (również podczas korzystania z systemu na zewnętrznym dysku SSD).

Krótkie informacje: Zewnętrzny dysk SSD to Samsung 850 evo 512GB (M2 Verison) z adapterem M2 do USB3.0. Jak wspomniano powyżej, inne Vms i podczas uruchamiania Windows VM z wewnętrznego SSD lub nawet z zewnętrznego USB3.0 HDD (jest to powolne, ale nadal jest znacznie szybsze niż zewnętrzny SSD w tym przypadku) działa dobrze.

Ustawienia maszyny wirtualnej:

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

Problem: Maszyna wirtualna uruchamia się poprawnie, ale powoduje, że system hosta zamarza od czasu do czasu i osiągnie ekran logowania po ~ 20 minutach. Ponieważ wydawało się, że jest to problem z dyskiem, załadowałem maszynę wirtualną z wewnętrznego dysku SSD i wyłączyłem funkcję stronicowania dysku systemu Windows, aby zmniejszyć ilość zapisanych dysków. Następnie skopiowałem zmieniony vmdk na zewnętrzny dysk SSD i odpowiednio zmodyfikowałem Virtualbox na moim systemie zewnętrznym. To jednak niczego nie zmieniło. (Zwiększyłem nawet pamięć RAM do 16 GB).

Założenie Z jakiegoś powodu Windows VM wykonuje strasznie dużo zapisów na dysku w porównaniu do VM Linuksa, Zabawne jest to, że zrobiłem to samo jakiś czas temu na zewnętrznym dysku twardym USB 3.0, który jest znacznie wolniejszy niż dysk SSD (jednak nie mogłem uruchomić systemu hosta na tym samym dysku)

Problemem na pewno nie jest dysk SSD, ponieważ używam tego samego dysku SSD, co wewnętrzny dysk SSD. Adapter działa dobrze dla Linux System, Linux VM i każdego innego programu, więc nie sądzę, żeby to też było.

Spróbuję przeszukać logi w poszukiwaniu informacji, ale jeśli ktoś ma inny Idear, będzie to bardzo mile widziane.

Pytanie: Jak mogę poprawić wydajność Windows VM na moim zewnętrznym dysku SSD i dlaczego Windows potrzebuje dużego ruchu IO?

Komentarz rozwiązania:

Używanie buforowania zapisu zwrotnego zgodnie z sugestią @Eugen Rieck rzeczywiście uczyniło maszynę wirtualną użyteczną, przypuszczam, że dodatkowa ilość IO systemu hosta na tym samym zewnętrznym SSD była zbyt duża dla kontrolera USB3.0 (bez buforowania). W Virtualbox znajdziesz tę opcję w:

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

Poza wadą wspomnianą przez @Eugen Rieck, wydaje się, że jest jeszcze jeden według @aeichnera z forum virtualbox

Pamięć podręczna hosta we / wy nie jest domyślnie używana, ponieważ może powodować We / Wy   limity czasu dla gościa, jeśli host ma wysokie obciążenie we / wy i hosta   cache nie poradzi sobie z tym. aeichner, 2011

MADforFUNandHappy
źródło

Odpowiedzi:

9

Zła wiadomość: Windows (tylko system operacyjny, a nie aplikacje) zapisuje więcej dysków niż Linux o około. 2 rzędy wielkości, nic nie możesz na to poradzić. Oprócz tego, jeden rząd magnetyzmu odczytuje więcej dysku.

Dobra wiadomość: gdy używasz buforowania zapisu zwrotnego na poziomie Hypervisior (np. W VirtualBox), możesz znacznie poprawić sytuację. Wiąże się to z ryzykiem uszkodzenia danych, jeśli host się zepsuł, ale z dobrym zasilaczem UPS powinien być łatwy do zarządzania.

Jeszcze jedno: jeśli użyjesz ponownie migawek - migawki mają znaczący współczynnik wzmocnienia zapisu, który w takim scenariuszu boli.

Eugen Rieck
źródło
6
Dlaczego system Windows pisze o wiele więcej?
Tim
@Tim Trudno powiedzieć; nie możesz wejść i spojrzeć na to, co pisze (co zrobić my muszę spojrzeć na Microsoft osobisty kod?).
wizzwizz4
Moją jedyną myślą na ten temat będzie indeksator. Jeśli regularnie zmieniasz plik, program indeksujący działa nieprzerwanie. Istnieje wiele rzeczy, które można wyłączyć podczas korzystania z dysków SSD i Windows. My Surface Pro przechodził z 4 godzin na ładowanie (dobre użytkowanie) do 5 + godzin na ładowanie (dobre wykorzystanie), gdy wyłączałem sam indeksator.
Colin Wiseman