How to fix the VMMem problem that is using 100% of CPU on WLS2

Tiempo de lectura: 2 minutos

If the vmem (or the process associated with WSL’s memory management) is consuming 100% of your CPU, and this freezes or crashes your system, it’s likely that WSL is using too many resources or has a memory leak.

Houses from the sky - Pexels

You have a series of practical solutions to apply:

You can restrict the resources that WSL can use. To do this, create (or edit) the file:

%UserProfile%\.wslconfig

You can add something like this:

[wsl2] memory=4GB # RAM limit processors=2 # CPU limit 

This prevents WSL from consuming all the RAM or CPU of your system. Requires restarting WSL.

Restart WSL with:

wsl --shutdown 

2. Check which process within WSL is consuming CPU

Iniate WSL and use:

top 

or

htop

Search for the process that consumes most CPU (could be something like node, python, etc.). If you identify the culprit, you can optimize it, kill it, or reconfigure it.

Docker Desktop with WSL2 may use a lot of memory. Check:

Docker Desktop > Settings > Resources

And limit RAM and CPU from there if you have containers running.

Evaluate:

wsl --update 

And make sure Windows 10/11 is updated.

Sometimes unnecessary demons are executed when starting WSL. Check your .bashrc, .zshrc, or services in /etc.

If you have a swap file in WSL and it’s not limited, you can generate excessive disk/CPU usage.

Check this in .wslconfig:

swap=2GB swapFile=C:\\wsl-swap.vhdx 

7. Monitor with Event Viewer (Event Viewer)

In case of severe crashes, open the Event Viewer (eventvwr.msc) and review errors under:

Windows Logs > System or Application

Look for critical errors related to vmem, WSL, or wslhost.exe.

You can also:

wsl --set-version <distro> 1

Leave a Comment