Uwaga: Zakładam, że masz tutaj wirujący dysk. Wskaźniki wydajności w tych obszarach różnią się znacznie dla pamięci półprzewodnikowej.
Podczas gdy nowoczesny dysk może wytrzymać wiele dziesiątek MB na sekundę podczas wykonywania odczytów i zapisów masowych, obie operacje, które opisujesz, obejmują co najmniej dwie lokalizacje na dysku, co wiąże się z dużym ruchem głowy. Opóźnienie ruchów głowy ma ogromny wpływ na przepustowość, ponieważ za każdym razem, gdy napęd musi poruszać głowami, opóźnienie polega na tym, że faktycznie je kopią w odpowiednie miejsce, opóźnienie oczekiwania na ich osiedlenie, a następnie opóźnienie oczekiwania na właściwe część dysku, którą można obrócić. Opóźnienia te są same w sobie niewielkie (średnio nawet 10ns na ruch w przypadku większości nowoczesnych napędów), ale jeśli napęd może przepychać 100 Mb / s przy pełnym przepływie 10 ms, każdy ruch marnuje czas 1 MB transferu danych.
Podczas defragmentacji dysku narzędzie spędza większość czasu na czytaniu z jednego miejsca na dysku i zapisywaniu do innego, niewielkiej liczby bloków na raz. Wyodrębnianie zawartości z zestawu plików chronionych parami jest jeszcze gorsze, ponieważ odczytywane są co najmniej dwa pliki (plik źródłowy i jeden lub więcej plików parzystości), a także zapisywany plik wyjściowy. Skutkuje to nawet zwykła operacja kopiowania dużego pliku. Wszystko to wyklucza ruchy głowy potrzebne do aktualizowania struktur katalogów i map wolnego miejsca w miarę przenoszenia bloków i / lub rozszerzania plików. Uruchomienie maszyny wirtualnej może być podobnie wymagające w zależności od tego, co robi maszyna wirtualna w danym momencie (a maszyna wirtualna zmniejszy ilość pamięci RAM dostępnej na maszynie hosta, aby używać jej jako pamięci podręcznej / buforów, co może pogorszyć sytuację,
Przy tym wszystkim, jeśli aplikacja GUI będzie musiała poprosić o choć trochę I / O, może stać w kolejce za wszystkimi innymi działającymi rzeczami. Jeśli aplikacja nie jest w pełni wielowątkowa, może to spowodować „zablokowanie” oczekiwania na zakończenie operacji we / wy, co oznacza, że nie jest w stanie odpowiedzieć na żadne komunikaty (na przykład „użytkownik kliknął tutaj”) kolejka zdarzeń Windows, dopóki nie nadejdzie jego kolej. Im więcej dzieje się na raz, tym gorzej będzie i nie zauważysz tego w odczytach „Procesor zajęty”, ponieważ procesor nie jest zajęty - w takich okolicznościach oczekuje się, że operacje IO zakończą się przez większość czasu .
Jeśli masz dwa lub więcej dysków, możesz znacznie zmniejszyć ich wpływ na ciebie, rozkładając obciążenie na dyski. Jeśli maszyna wirtualna znajduje się na innym dysku niż podstawowy system operacyjny, nie będzie konkurować o obsługę we / wy, gdy maszyna wirtualna jest zajęta, gdy host defragmentuje partycję systemową. Ponadto rozpakowanie archiwum z jednego dysku i zapisanie wyniku na innym będzie zauważalnie szybsze niż rozpakowanie go na tym samym dysku, ponieważ operacja odczytu nie konkuruje bezpośrednio z operacją zapisu dla pozycjonowania głowicy na jednym dysku.