Процесс Vmmem в Windows представляет собой ту часть оперативной памяти, которую операционная система выделила для виртуальной машины (Hyper-V). Используется компонентом системы Windows Subsystem for Linux (ныне сокращённо WSL 2, т.к. актуальна именно вторая редакция). WSL 2 очень любит кэшировать в оперативную память, но не любит эту память освобождать. Посмотрим, как очистить используемую процессом Vmmem ОЗУ без перезагрузки системы.
Для очистки кэша достаточно выполнить в WSL 2 из-под root следующую команду:
sh -c "echo 3 > /proc/sys/vm/drop_caches"
Можно выделить процессу Vmmem заранее определённое количество оперативной памяти. Делается это путём создания или редактирования уже существующего файла %UserProfile%\.wslconfig. В него необходимо добавить следующие строки:
[wsl2] memory=4GB # Ограничиваем память для WSL2. processors=4 # Ограничиваем количество процессов для WSL2.
Количество используемых процессоров и ОЗУ указывайте исходя из своих потребностей. Главный минус данного способа — процесс Vmmem начнёт использовать ровно столько ресурсов, сколько указано, даже если они ему не нужны. Не больше, но и не меньше.
Статьи по теме: