Przeczytałem w jednym z artykułów KB VMware, że migawki będą miały bezpośredni wpływ na wydajność VM.
Ale mój zespół wciąż pyta mnie, w jaki sposób migawki mogą wpływać na wydajność.
Chciałbym podać im solidne uzasadnienie stwierdzenia, że migawki są zabójcami wydajności.
Czy ktoś może wyjaśnić trochę teorii o tym, jak migawki faktycznie wpływają na wydajność? Czy to tylko dlatego, że szybkość operacji we / wy dysku twardego byłaby niska?
performance
vmware-esxi
virtual-machines
snapshot
Samselvaprabu
źródło
źródło
Odpowiedzi:
Kiedy tworzysz migawkę, oryginalny obraz dysku jest „zamrożony” w spójnym stanie, a wszystkie dostępy do zapisu od tej pory przejdą do nowego obrazu różnicowego. Co gorsza, jak wyjaśniono tu i tutaj , obraz różnicowy ma postać dziennika zmian, który rejestruje każdą zmianę wprowadzoną do pliku od momentu wykonania migawki. Oznacza to, że dostęp do odczytu musiałby odczytać nie tylko jeden plik, ale także wszystkie dane różnic (oryginalne dane plus każda zmiana wprowadzona do oryginalnych danych). Liczba rośnie jeszcze bardziej, gdy kaskadowo robisz migawki.
źródło
Kiedy tworzysz migawkę na maszynie wirtualnej, tworzy ona dysk Delta, a system operacyjny zapisuje ten plik zamiast oryginalnego VMDK. Ten plik nazywa się VM_Name-Delta.VMDK, ale jeśli system musi odwoływać się do pliku przed migawką, będzie odwoływał się do VM_Name.VMDK, zwiększając ilość operacji we / wy. Jeśli wykonujesz wiele migawek, odnosisz się do ostatniego pliku delta ostatniej migawki, a nie do oryginalnego VMDK, zwiększając w ten sposób operacje wejścia / wyjścia.
Również jeśli uwzględnisz stan pamięci maszyny Wirtualnej podczas migawki, spowoduje to utworzenie pliku delta i w razie potrzeby odwołuje się do oryginalnych plików pamięci.
Tworzony jest plik, który zawiera listę wszystkich plików utworzonych podczas procesu tworzenia migawki
źródło
O ile wiem, VMWare używa logiki kopiowania przy zapisie do implementacji swoich migawek. Dlatego po utworzeniu jednego każda operacja wykonana na maszynie wirtualnej (np. Prawie wszystko w środowisku wykonawczym) spowodowałaby skopiowanie odrobiny maszyny wirtualnej, dopóki cała rzecz nie zostanie zasadniczo sklonowana.
Innym problemem związanym z wydajnością jest to, że odczyty musiałyby być kaskadowane do oryginalnej kopii, jeśli kopia robocza nie ma jeszcze danych (ponieważ nic się nie zmieniło, aby spowodować kopię).
Jeśli chcesz mieć migawki jako kopię zapasową, ale nie tolerujesz niewielkiego spadku wydajności, rozważ klonowanie maszyny wirtualnej.
źródło
Z wartości High co-stop (% CSTP) obserwowanych podczas wykonywania migawek maszyny wirtualnej :
źródło