Microsoft ha implementato in WSL2 (Windows Subsystem for Linux) il ritorno della memoria al sistema

Microsoft ha annunciato il sull'espansione delle capacità del livello WSL2 (sottosistema Windows per Linux), che garantisce il lancio di file eseguibili Linux su Windows. Nelle build sperimentali finestre Insider (build 19013) nel livello WSL2 è apparso il supporto per la restituzione della memoria al sistema (Memory Reclamation) rilasciata dai processi in esecuzione in un ambiente basato sul kernel Linux.

In precedenza, in caso di aumento del consumo di memoria da parte delle applicazioni o del kernel, la memoria veniva allocata alla macchina virtuale WSL2, ma successivamente rimaneva bloccata e non veniva restituita al sistema, anche dopo la conclusione del processo ad alta intensità di risorse e lì non c'era più bisogno della memoria allocata. Il meccanismo di recupero della memoria consente di restituire la memoria liberata al sistema operativo principale e ridurre automaticamente la dimensione della memoria della macchina virtuale. Ciò restituisce non solo la memoria liberata dai processi utente, ma anche la memoria utilizzata per la memorizzazione nella cache nel kernel Linux. Ad esempio, con un'elevata attività del disco, aumenta la dimensione della cache della pagina, in cui viene depositato il contenuto dei file quando il file system è in esecuzione. Dopo aver eseguito "echo 1 > /proc/sys/vm/drop_caches" la cache può essere svuotata e la memoria può essere restituita al sistema operativo principale.

L'implementazione di Memory Reclamation si basa su
toppa, proposto dagli ingegneri Intel per l'inclusione nel kernel principale di Linux al fine di espandere le capacità del driver virtio-balloon e per il sistema di gestione della memoria. La patch specificata è progettata per l'uso in qualsiasi sistema guest per restituire le pagine di memoria inutilizzate al sistema host e può essere utilizzata con vari hypervisor. Nel caso di WSL2, la patch è adattata per restituire memoria all'hypervisor Hyper-V.

Ricordiamo che la seconda edizione del WSL diverso fornitura di un kernel Linux completo invece di un emulatore che traduce al volo le chiamate di sistema Linux in chiamate di sistema Windows. Consegnato nel WSL2 kernel Linux Basato sulla versione 4.19, che viene eseguito in un ambiente Windows utilizzando una macchina virtuale già in esecuzione in Azure. Gli aggiornamenti al kernel Linux vengono forniti tramite il meccanismo di Windows Update e testati rispetto all'infrastruttura di integrazione continua di Microsoft. Le patch del kernel specifiche per WSL2 includono ottimizzazioni per ridurre il tempo di avvio del kernel, ridurre il consumo di memoria e lasciare il kernel con il set minimo richiesto di driver e sottosistemi.

Fonte: opennet.ru

Aggiungi un commento