WSL 2 вече има функция за възстановяване на паметта
С пускането на Windows 10 Build 18917, Microsoft представи WSL 2 на Insiders, подсистемата на Windows за Linux 2. Той доставя истинско ядро на Linux с Windows, което ще направи възможна пълната съвместимост на системните повиквания. Това е първият път, когато ядрото на Linux се доставя с Windows. Windows 10 build 19013 добавя още една страхотна функция на WSL 2 - Memory Reclaim, която позволява на хост системата да използва повторно памет, която вече не е необходима за нито един процес на Linux.
Реклама
Преди това, когато нуждите от памет на WSL2 виртуалната машина (VM) нарастват, или от вашия работен процес, или от ядрото на Linux, общата памет, разпределена на VM, също ще нарасне чрез разпределяне на повече памет от домакин. Но след като работният поток приключи, тази памет, която вече не е необходима на работния поток, няма да бъде освободена обратно на хоста. Сега с възстановяване на паметта в WSL 2, когато паметта в Linux вече не е необходима, тя може да бъде докладвана обратно на хоста, където ще бъде освободена и вашата WSL 2 VM ще се свие в размера на паметта.
Преди:
След:
Вижте следното видео:
Как работи
Тази функция се захранва от a Пач на ядрото на Linux което позволява малки последователни блокове памет да се връщат на хост машината, когато вече не са необходими в Linux гост. Екипът на WSL актуализира Ядрото на Linux в WSL2 за да включите тази корекция и модифициран Hyper-V, за да поддържа тази функция за отчитане на страници. За да върне възможно най-много памет на хоста, WSL периодично уплътнява паметта, за да гарантира, че свободната памет е налична в последователни блокове. Това работи само когато вашият процесор е неактивен. Можете да видите кога това се случва, като потърсите съобщението „WSL2: Извършване на уплътняване на паметта“ вътре в изхода на dmesg
команда. Ако сте опитен потребител, можете да конфигурирате това поведение, като редактирате стойности в .wslconfig. Моля, проверете Бележки за версията на WSL 19013 за да видите тези опции. Като алтернатива, ако искате да стартирате тази команда на Linux ръчно, можете да изпълните командата ехо 1 > /proc/sys/vm/compact_memory
като root потребител.
Можете да намерите повече технически подробности и примери в официална публикация в блога.