WSL 2 ora ha la funzione di recupero della memoria
Con il rilascio di Windows 10 Build 18917, Microsoft ha introdotto WSL 2 per Insiders, il sottosistema Windows per Linux 2. Fornisce un vero kernel Linux con Windows che renderà possibile la piena compatibilità delle chiamate di sistema. Questa è la prima volta che un kernel Linux viene fornito con Windows. Windows 10 build 19013 aggiunge un'altra fantastica funzionalità di WSL 2: Memory Reclaim, che consente al sistema host di riutilizzare la memoria che non è più necessaria per alcun processo Linux.
In precedenza, quando le esigenze di memoria della macchina virtuale (VM) WSL2 aumentavano, dal flusso di lavoro o da il kernel Linux, la memoria complessiva allocata alla VM aumenterebbe anche allocando più memoria dal ospite. Ma, una volta terminato il flusso di lavoro, la memoria che non è più necessaria per il flusso di lavoro non verrà rilasciata all'host. Ora con il recupero della memoria in WSL 2, quando la memoria in Linux non è più necessaria, può essere segnalata all'host dove verrà liberata e la tua VM WSL 2 si ridurrà in termini di dimensioni della memoria.
Prima:
Dopo:
Guarda il seguente video:
Come funziona
Questa funzione è alimentata da a Patch del kernel Linux che consente di restituire piccoli blocchi di memoria contigui alla macchina host quando non sono più necessari nel guest Linux. Il team WSL ha aggiornato il Kernel Linux in WSL2 per includere questa patch e Hyper-V modificato per supportare questa funzione di segnalazione della pagina. Per restituire quanta più memoria possibile all'host, WSL compatta periodicamente la memoria per garantire che la memoria libera sia disponibile in blocchi contigui. Funziona solo quando la CPU è inattiva. Puoi vedere quando ciò accade cercando il messaggio "WSL2: Performing memory compaction" all'interno dell'output del dmesg
comando. Se sei un utente esperto puoi configurare questo comportamento modificando i valori in .wslconfig. Si prega di controllare Note sulla versione di WSL 19013 per vedere queste opzioni. In alternativa, se desideri eseguire manualmente questo comando Linux, puoi eseguire il comando echo 1 > /proc/sys/vm/compact_memory
come utente root.
Puoi trovare maggiori dettagli tecnici ed esempi nel post ufficiale sul blog.