很多 微軟開發人員宣布擴展WSL2層 Windows Insider實驗性內部版本(內部版本19013)中的“適用於Linux的Windows子系統”。 他們在這些聲明中宣布 增加了兼容性 返回內存系統(記憶回收),由在基於Linux內核的環境中運行的進程發布。
以前,在內存消耗較高的情況下 通過應用程序或內核,內存 它已分配給WSL2虛擬機,但此後它保持固定並且沒有返回系統, 即使在完成資源密集型過程之後,也不再需要增加分配的內存。
現在,隨著WSL 2中的內存回收,當不再需要Linux中的內存時,可以通知主機它將在何處釋放,並且WSL 2 VM的內存大小將減少。
內存回收機制允許釋放的內存返回主操作系統 並自動減小虛擬機的內存大小。 在這種情況下,不僅會返回用戶進程釋放的內存,還會返回用於Linux內核中進行緩存的內存。
在Linux虛擬機中,用戶進程不是唯一使用內存的事物。 Linux內核還使用許多高速緩存,包括頁面高速緩存,該高速緩存存儲文件內容以提高文件系統性能。 讓我們再看一個真實的例子,看看它是如何發揮作用的。
例如: 磁盤活動頻繁時,頁面緩存大小會增加, 其中文件的內容是在FS操作過程中確定的。 執行完“ echo 1> / proc / sys / vm / drop_caches”之後,可以清除緩存,並將內存返回主操作系統。
內存回收實現基於英特爾工程師提出的補丁,該補丁包含在主要的Linux內核中,以擴展virtio-balloon驅動程序和內存管理系統的功能。
此功能由Linux內核補丁驅動,當Linux來賓中不再需要小的連續內存塊時,它們可以返回給主機。 我們在WSL2中更新了Linux內核以包括此補丁,並修改了Hyper-V以支持此頁面報告功能。
指定的修補程序旨在在任何來賓系統上使用 將未使用的內存頁面返回到主機系統,並且可以與多個虛擬機管理程序一起使用。 對於WSL2, 該修補程序經過專門設計,可以將內存返回給Hyper-V虛擬機管理程序。
重要的是要記住 WSL的第二版在提供完整的Linux內核而不是仿真器方面有所不同 即時將Linux系統調用轉換為Windows系統調用。
WSL 2是該架構的新版本,e允許Linux的Windows子系統在Windows上運行Linux ELF64二進製文件。 WSL 2的新版本使用Hyper-V功能創建具有最少Linux內核的輕型虛擬機。
WSL2中提供的Linux內核基於版本4.19,該版本使用已在Azure中使用的虛擬機在Windows環境中運行。 Linux內核的更新是通過Windows Update引擎提供的,並已在Microsoft的持續集成基礎結構上進行了測試。
內核中使用的WSL2特定修補程序包括優化,以減少內核啟動時間,減少內存消耗,並使內核具有最少的驅動程序和子系統。
如果您想了解有關它的更多詳細信息 您可以在原始帖子中查看它們。 鏈接是這個。