…tylko używa pliki vmem na dysku o pojemności równej przydzielonemu do maszyny wirtualnej RAM-owi. Co negatywnie wpływa na żywotność dysku SSD a na HDD spowalnia. Mam wystarczająco RAM-u a mimo to i tak tworzy pliki vmem…
Da się to jakoś wyłączyć?
Jeżeli przydzielasz powiedzmy 8GB dla maszyny wirtualnej, to VMWare nie blokuje tej pamięci od razu, tylko płynnie w zależności od potrzeb maszyny wirtualnej.
Można sobie wyobrazić sytuację gdy przydzieliłeś 8GB ale w systemie na którym działa VMWare uruchomiłeś coś dużego i zostało tylko 4GB wolnej pamięci. W takim przypadku VMWare musi mieć backup, w tym przypadku plik wymiany żeby maszyna wirtualna działała poprawnie.
Tak w skrócie, w praktyce jest to potężny mechanizm, którego nie da się wyjaśnić w 2 zdaniach.
Można wyłączyć
choć w komentarzach opinie są podzielone.
Ok jeszcze znalazłem:
czyli w sumie dodałem takie opcje do pliku vmx:
prefvmx.minVmMemPct = "100"
MemTrimRate = "0"
mainMem.useNamedFile = "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
mainmem.backing = "swap"
Ale niestety pauzowanie nadal zapisuje na dysku.
Udało mi się to obejść poprzez dodanie w notatniku do pliku vmx:
workingDir = "R:\"
gdzie R to ramdisk stworzony Imdiskiem.
Pauza w przypadku VMWare działa podobnie do hibernacji. Czyli jeżeli dasz pauzę, to potem możesz taką maszynę wznowić nawet jak zrestartujesz komputer na którym działa VMWare. Jednym słowem stan maszyny zapisywany jest na dysku i przetrwa np restart systemu gospodarza.
Jeżeli pauzujesz taką maszynę do ramdysku, to jej ‘odpauzowanie’ będzie możliwe tylko gdy system gospodarza nieprzerwanie działa. Po restarcie dostaniesz już błąd, co więcej możesz skończyć z uszkodzonym systemem plików w maszynie wirtualnej (np sytuacja gdy dałeś pauzę i zrobiłeś restart komputera albo np zabrakło prądu)
Ja jeszcze napisze skoro chodzi o Vmware to ma fajną opcję do zmniejszania rozmiaru wirtualnych dysków (virtual machine settings ->hard disk->disk utilities->defrag/compact/expand)
Tylko w moim przypadku to nie działało:
rozwiązaniem było:
- defragmentacja obrazu dysku
- wyzerowanie wolnej przestrzeni:
Gość Windows: użyć Sdelete
SDelete - Sysinternals | Microsoft Learn
spod hirensa live
sdelete.exe c: -z
Gośc Linux: - z dowolnego Linuxa live iso
cat /dev/zero > zero.file
sync
rm zero.file
Jeżeli mamy do czynienia z dyskiem SSD a wirtualizator i system obsługują fstrim
to zerowanie można załatwić poprzez:
fstrim --all --verbose
Działa natychmiastowo. Bardzo przydatna opcja nie tylko do defragmentacji ale również np jeżeli chcemy skompresować plik obrazu maszyny wirtualnej i wrzucić gdzieś do archiwum.
Metoda z tworzeniem pliku podana przez @Grogu nie działa natychmiastowo ale ma tą zaletę, że jest skuteczna w każdym przypadku.