Czy powinienem defragmentować dysk twardy uruchomiony na maszynie wirtualnej?


18

Wiem, że nie ma sensu (w rzeczywistości jest to zły pomysł), aby uruchomić Defrag na dysku SSD. Co z maszyną wirtualną działającą na dysku SSD, czy powinienem defragmentować dysk twardy, ponieważ zasadniczo uzyskuje on dostęp do dysku twardego w ten sam sposób?


Nie mam pojęcia, dlaczego jest to na SO, ale może być istotne: stackoverflow.com/questions/281527/…
Der Hochstapler

VSS może spowodować wzrost pamięci, jeśli nie użyjesz defragmentatora obsługującego VSS.

Tylko jeśli opcja defragmentacji jest częścią oprogramowania do wirtualizacji.
qasdfdsaq,

Odpowiedzi:


14

Defragmentuję dyski VHD, ale ze względu na brak miejsca, a nie czas:

Używam opcji dynamicznie alokowanej dla dysków VHD, więc zaczynają się małe i rozwijają w razie potrzeby. Ale ponieważ dysk VHD (niekoniecznie pliki) ulega fragmentacji, rozszerza się, aby objąć wszystkie przydzielone bloki. Defragmentacja dysku VHD jest pierwszym krokiem do jego ponownego kompaktowania.


Czynnik przestrzenny może być istotny, ponieważ maszyna wirtualna znajduje się na dysku SSD, chociaż ogólnie defragmentacja czegokolwiek na dysku SSD nie jest potrzebna ze względu na wydajność i jest odradzana.
Bigbio2002

3

Nie ma potrzeby defragmentacji dysku SSD. Zwykły dysk twardy musi się obracać, aby znaleźć (części) plików. Dysk SSD jest porównywalny z pamięcią RAM, wszystkie pliki można uzyskać z tym samym opóźnieniem.

Wikipedia stwierdza, że „Wydajność odczytu nie zmienia się w zależności od miejsca przechowywania danych na dysku SSD”


Podaj link do artykułu w Wikipedii .
wizlog

1
@wizlog Voila;)
Simon Verbeke

2

To tylko moja opinia, nie mam wyników testów, aby to zrobić. Oto przybliżone przybliżenie prawdopodobnych wydarzeń:

Prawdziwy system operacyjny:

  1. Aplikacja prosi o dane X (szybko)
  2. System operacyjny pyta sterownik dysku o dane X (szybko)
  3. Dysk fizyczny pobiera dane X i zwraca je do systemu operacyjnego ( powolne, jeśli są pofragmentowane )

Oto równoważny łańcuch poleceń na maszynie wirtualnej:

  1. Aplikacja VM prosi o dane X (szybko)
  2. VM OS pyta o dane X (szybko)
  3. Host VM prosi prawdziwy system operacyjny o pobranie danych X zapisanych w pliku dysku wirtualnego (szybko)
  4. Real OS prosi sterownik dysku o pobranie danych X (szybko)
  5. Dysk fizyczny pobiera dane X i zwraca je do systemu operacyjnego ( powolne, jeśli jest pofragmentowane ).

Jak widać, w obu przypadkach fragmentacja naprawdę staje się problemem na etapie operacji, w której fizyczny dysk twardy próbuje odczytać dane, i dzieje się to w prawdziwym systemie operacyjnym, poza kontekstem maszyny wirtualnej. Wcześniej wszystko prawdopodobnie dzieje się w pamięci.

Podsumowując, ponieważ wiemy, że dyski SSD nie cierpią na fragmentację w prawdziwym systemie operacyjnym i że problem fragmentacji na maszynie wirtualnej prawdopodobnie występuje tylko na ostatnim fizycznym etapie operacji, domyślam się, że defragmentacja albo wirtualnego systemu operacyjnego, albo plik dysku wirtualnego w głównym systemie operacyjnym nie poprawiłby wydajności dysku SSD, a jednocześnie byłby tak szkodliwy / bezużyteczny, jak defragmentacja prawdziwego systemu operacyjnego.

Edycja: A jeśli to prawda, to cholernie dobry powód, aby umieścić maszynę wirtualną na dysku SSD! Na dysku twardym fragmentacja na dowolnym etapie (system operacyjny gościa, plik dysku wirtualnego, prawdziwy system operacyjny) złamie liniowość i spowoduje fragmentację na etapie dysku fizycznego.


2

Niezależnie od tego, czy twoja maszyna wirtualna uzyskuje dostęp do danych przechowywanych na tradycyjnym magnetycznym dysku twardym, czy na elektronicznym dysku SSD, fragmentacja plików i plików NTFS w systemie Windows NTFS spowalnia szybkość dostępu aplikacji żądających danych. Fragmentacja pliku NTFS i fragmentacja wolnego miejsca zdarzają się znacznie częściej, niż się wydaje. Może się to zdarzyć zaraz po zainstalowaniu systemu operacyjnego. Może się to zdarzyć podczas instalowania aplikacji lub aktualizacji systemu, uzyskiwania dostępu do Internetu, pobierania i zapisywania zdjęć, tworzenia wiadomości e-mail, dokumentów biurowych itp. Jest to normalne zjawisko i zachowanie systemu komputerowego, ale ma negatywny wpływ na cała wydajność aplikacji i systemu. W miarę fragmentacji system komputerowy i podstawowa pamięć masowa wykonują więcej pracy, niż jest to konieczne. Każde żądanie We / Wy zajmuje mierzalny czas. Nawet w środowiskach SSD nie ma czegoś takiego jak „natychmiastowe” żądanie We / Wy. Za każdym razem, gdy aplikacja żąda odczytu lub zapisu danych, a żądanie to zostaje podzielone na dodatkowe żądania We / Wy, powoduje to konieczność wykonania większej pracy. Ta dodatkowa praca powoduje opóźnienie w tym samym momencie.

Dyski stały się szybsze z biegiem lat, ale i procesory. W rzeczywistości różnica między różnicą prędkości między dyskami twardymi a procesorem faktycznie się powiększyła. Oznacza to, że aplikacje mogą uzyskać wiele cykli procesora, ale wciąż głodują, aby pobrać dane z pamięci. Co więcej, ilość przechowywanych danych dramatycznie wzrosła. Pomyśl tylko o tych wszystkich cyfrowych zdjęciach zrobionych i udostępnionych podczas świąt. Każde zdjęcie ma rozmiar około 1 MB, teraz przekracza 15 MB na zdjęcie, a niektóre znacznie wykraczają poza to. Edycja wideo oraz renderowanie i przechowywanie filmów cyfrowych również stały się bardzo popularne, w wyniku czego aplikacje manipulują setkami gigabajtów danych. Przy typowych rozmiarach klastra dyskowego wynoszących 4k plik o rozmiarze 15 MB mógłby zostać potencjalnie podzielony na prawie 4000 fragmentów. Oznacza to dodatkowe 4, Do odczytania lub zapisu pliku wymagane jest 000 żądań We / Wy dysku. Bez względu na rodzaj pamięci, operacja zajmie więcej czasu.

Fizyczne umieszczenie danych na dysku SSD nie ma tak naprawdę znaczenia, jak na zwykłych magnetycznych dyskach twardych. W przypadku dysku SSD nie ma opóźnienia obrotowego ani czasu na walkę. Wielu ekspertów zakłada, że ​​fragmentacja nie stanowi już problemu, ale szybkość dostępu do danych aplikacji nie jest zdefiniowana tylko w tych kategoriach. Każde wykonane żądanie We / Wy zajmuje mierzalny czas. Dyski SSD są szybkie, ale nie są natychmiastowe. System plików Windows NTFS nie zachowuje się inaczej, ponieważ podstawową pamięcią jest dysk SSD vs. HDD, dlatego fragmentacja nadal występuje. Zmniejszenie niepotrzebnych operacji we / wy poprzez zapobieganie fragmentacji we fragmentach i eliminowanie ich zmniejsza liczbę żądań operacji we / wy, co przyspiesza czas odpowiedzi danych aplikacji i poprawia ogólną żywotność dysku SSD. W istocie

Ponadto dyski SSD wymagają usunięcia starych danych przed zapisaniem na nich nowych danych, a nie tylko zapisu starych informacji, jak w przypadku dysków HDD. Podwaja to zużycie i może powodować poważne problemy z wydajnością i żywotnością dysku SSD. Większość producentów dysków SSD ma do tego bardzo zaawansowane technologie wyrównywania zużycia. Podstawowym problemem jest spadek prędkości zapisu z powodu fragmentacji wolnej przestrzeni. Małe wolne miejsca rozrzucone na dysku SSD powodują, że system plików NTFS zapisuje plik w pofragmentowanych częściach na tych małych dostępnych wolnych miejscach. Powoduje to, że powoduje więcej losowego ruchu we / wy, który jest wolniejszy niż operacje sekwencyjne.

Mam wyniki testów porównawczych na poparcie tego. Jeśli chcesz, opublikuj komentarz z prośbą o te wyniki, a chętnie się z tobą podzielę.


Howard Butler, jesteś nowy na tej stronie, witamy. Ogólnie rzecz biorąc, naprawdę nie zaleca się publikowania danych osobowych w Internecie.
wizlog

@wizlog Nie ma nic złego w publikowaniu danych osobowych w Internecie, jeśli są one twoje. Jednak dla celów StackExchange opublikowanie danych kontaktowych lub „podpisu” w odpowiedzi jest zbędne. Użytkownicy mogą kliknąć profil, aby uzyskać więcej informacji, jeśli chcą.
iglvzx,

@iglvzx Właśnie tworzyłem komentarz, który zasadniczo sugerowałby to samo ... Zgodnie z zaleceniem tej odpowiedzi.
wizlog

2

Jeśli chodzi o pierwotne pytanie o tradycyjną defragmentację dysku SSD, zgadzam się, że to zły pomysł, ale dostępne są konkretne rozwiązania, które rozwiązują problemy związane z przenoszeniem plików i żywotnością dysku SSD.

W przypadku maszyny wirtualnej z systemem Windows jako systemem operacyjnym fragmentacja będzie nadal występować, a łączny efekt dodatkowego ruchu we / wy zmniejszy szybkość i wydajność nie tylko systemów-gości, ale także hosta. Zarówno Microsoft, jak i VMware zalecają potrzebę rozwiązania problemu fragmentacji na poziomie gościa.

Dlatego…

  1. Aplikacja prosi o dane X

  2. Żądanie jest przetwarzane przez NTFS.sys

  3. Atrybuty pliku są badane ($ MFT) i jeśli dane nie są zawarte w jednym zakresie (fragmencie), dla każdego zakresu / fragmentu tworzone są dodatkowe żądania We / Wy w celu spełnienia pierwotnego żądania danych.

  4. Każde z tych żądań jest następnie wysyłane do sterownika pamięci dyskowej.

  5. Po pobraniu danych są one ponownie przekazywane stosowi do użytkownika / aplikacji.

Każda maszyna wirtualna z systemem Windows wysyła ten typ ruchu we / wy do systemu hosta. Jeśli struktura systemu plików jest pofragmentowana na poziomie gościa / maszyny wirtualnej, przekłada się to na dodatkowy i niepotrzebny ruch we / wy, który musi być obsługiwany przez hosta i zagospodarowany magazyn zaplecza. Jest to jeszcze bardziej skomplikowane, gdy dodajesz coraz więcej maszyn wirtualnych. W rzeczywistości fragmentacja może mieć fragmentację na poziomie systemu plików hosta.

Niezależnie od tego, czy dane są przechowywane na dysku SSD, czy na tradycyjnym dysku twardym, jeśli używasz systemu Windows, system plików NTFS ulegnie fragmentacji, w wyniku czego nigdy nie osiągniesz znamionowej prędkości i przepustowości producenta ze względu na fragmentację pliku NTFS i wolne miejsce. Efekty można zmierzyć za pomocą PerfMon, patrząc na średnią długość kolejki odczytu dysku, średnią długość kolejki zapisu, a co najważniejsze podzielone operacje we / wy.


1

Począwszy od systemu Windows Server 2008 i Windows Vista, należy zachować ostrożność przy domyślnym zaplanowanym zadaniu defragmentacji systemu Windows.

Można go wyłączyć za pomocą: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable

lub używając PowerShell:

Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask

Wyodrębniono z: http://www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html


0

Właśnie zdefragmentowałem maszynę wirtualną VMLite XPMode za pomocą Windows Defrag hostowanej na INTEL SSDSC2CW240A3 o pojemności 240 Gb.

Pre Defrag rozmiar maszyny wirtualnej na hoście - 7,83 Gb (używane miejsce na C: na maszynie wirtualnej, 5,81 Gb z 121 Gb)

Po defragmentacji - 9,86 Gb (zużyte miejsce na C: na VM, 5,80 Gb z 121 Gb)

Nie oczekiwanego rezultatu i przywróciłem wersję przed defragmentacją.


-1

Nie, nie bardzo. Są takie rzeczy jak „Hyperfast” autorstwa Diskeepera, ale nie mam pojęcia, jak wydajne są te technologie. (Być może jest to tylko zdzierstwo, aby nie spadły z rynku, gdy dyski SSD staną się głównym nurtem.)


Hyperfast, brzmi jak magiczny sos.
Jafin
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.