WSL 2 ma teraz funkcję odzyskiwania pamięci
Wraz z wydaniem kompilacji 18917 systemu Windows 10 firma Microsoft wprowadziła WSL 2 do niejawnych testerów, podsystem systemu Windows dla systemu Linux 2. Dostarcza prawdziwe jądro Linuksa z systemem Windows, które umożliwia pełną kompatybilność wywołań systemowych. Jest to pierwszy raz, kiedy jądro Linux jest dostarczane z systemem Windows. Kompilacja systemu Windows 10 19013 dodaje kolejną świetną funkcję WSL 2 — Odzyskiwanie pamięci, która umożliwia systemowi hosta ponowne wykorzystanie pamięci, która nie jest już potrzebna w żadnym procesie systemu Linux.
Wcześniej, gdy zapotrzebowanie na pamięć maszyny wirtualnej WSL2 (VM) rosło, z Twojego przepływu pracy lub przez jądra Linuksa, całkowita pamięć przydzielona do maszyny wirtualnej również wzrośnie, przydzieląc więcej pamięci z gospodarz. Ale po zakończeniu przepływu pracy pamięć, która nie jest już potrzebna przepływowi pracy, nie zostanie zwolniona z powrotem do hosta. Teraz dzięki odzyskiwaniu pamięci w WSL 2, gdy pamięć w systemie Linux nie jest już potrzebna, można ją zgłosić z powrotem do hosta, gdzie zostanie zwolniona, a rozmiar pamięci wirtualnej WSL 2 zmniejszy się.
Przed:
Później:
Obejrzyj następujący film:
Jak to działa
Ta funkcja jest obsługiwana przez Łatka jądra Linuksa który umożliwia zwracanie małych, ciągłych bloków pamięci do hosta, gdy nie są już potrzebne w gościu systemu Linux. Zespół WSL zaktualizował Jądro Linuksa w WSL2 aby dołączyć tę poprawkę i zmodyfikowaną funkcję Hyper-V, aby obsługiwać tę funkcję raportowania stron. Aby zwrócić hostowi jak najwięcej pamięci, WSL okresowo kompaktuje pamięć, aby zapewnić dostępność wolnej pamięci w ciągłych blokach. Działa to tylko wtedy, gdy procesor jest bezczynny. Możesz zobaczyć, kiedy tak się dzieje, wyszukując komunikat „WSL2: Wykonywanie kompaktowania pamięci” wewnątrz danych wyjściowych dmesg
Komenda. Jeśli jesteś zaawansowanym użytkownikiem, możesz skonfigurować to zachowanie, edytując wartości w .wslconfig. Proszę sprawdzić Uwagi do wydania WSL 19013 aby zobaczyć te opcje. Alternatywnie, jeśli chcesz uruchomić to polecenie Linuksa ręcznie, możesz uruchomić polecenie echo 1 > /proc/sys/vm/compact_memory
jako użytkownik root.
Więcej szczegółów technicznych i przykładów można znaleźć w oficjalny wpis na blogu.