Published October 13, 2026. Steps are for Windows 11 and 10.
What Vmmem is
Vmmem (called VmmemWSL on newer versions of Windows) is how Task Manager shows the memory and CPU used by a virtual machine. On most PCs that machine runs WSL 2, the Windows Subsystem for Linux. Docker Desktop runs on WSL 2 too, so starting Docker starts Vmmem.
It uses so much memory because Linux treats spare RAM as file cache, and WSL 2 gives that memory back to Windows slowly. By default WSL 2 can use up to half of your PC's RAM, and it holds on to it after builds or containers have finished.
Is it safe to end?
Don't end it from Task Manager; Windows usually refuses anyway. Shut WSL down properly instead (below). That stops every Linux distro and Docker container, so save your work in them first.
Free the memory now
Open PowerShell or Command Prompt and run:
wsl --shutdown
Vmmem disappears within a few seconds. WSL starts again next time you open a Linux terminal. If you use Docker Desktop, quit it from its icon in the taskbar first.
Cap how much memory WSL can use
Create or edit the file %UserProfile%\.wslconfig (for example C:\Users\you\.wslconfig) and add:
[wsl2]
memory=6GB
Pick a number that leaves room for Windows: 4 to 6 GB on a 16 GB PC, 8 to 12 GB on a 32 GB PC. Then run wsl --shutdown so the setting takes effect. Docker Desktop with the WSL 2 backend follows the same limit.
Recent versions of WSL can also hand unused memory back to Windows on their own. Run wsl --update, then add this to the same file:
[experimental]
autoMemoryReclaim=gradual