New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WSL2 + Docker causes severe memory leaks in vmmem process, consuming all my machine's physical memory #8725
Comments
I have the same issue only by running a few fixed docker images. Within 2 days the memory is 100% used only stopping Docker Destop releases the memory. So I have switched back to Docker Desktop 4.11.0 |
This is also happening to our team. Seems to have started for us last week. It appears to be maxing out our WSL memory allotted also, as the total calculated processes memory in task manager was not equal the total memory being used. |
Same here on Windows 11 and Docker Desktop 4.11.1. Running asp.net containers from Visual Studio. |
Same for me. Memory in task manager doesn't add up to total. Limiting the wslconfig file does limit the memory af the task, however, it's like the memory doesn't get returned and after 2-3 days or runtime my computer hits 100% memory usage and I have to reboot. |
Please fix. |
Also saw this, unsure if was related to unstarted containers - resource monitor showed ~6 instances of vmmem with 1GB committed and 0KB working set (and one or two with both committed and working, looking more functional). Also running 4.11.1. @labanv, did rolling back help you? |
Same here on Windows server 2022 and Docker Desktop 4.11.1. After a few days the server memory takes up 100% the total calculated processes memory in task manager was not equal the total memory being used. |
Same issue on Windows 10 Docker Desktop v4.11.1. Left my laptop for a bit and came back to 100% memory usage with 16GB and only one image running. |
Nice, I also limited memory allocation in wslconfig. It helped, but doesn't eliminate the issue (it just allows me to get away with building more docker containers, before my machine starts grinding to a halt as it dips into virtual memory). |
Rolled mine back to 4.10.0 and haven't noticed the issue. So far so good for the last ~24 hours. |
for me it works, memory usage is still increasing (some leaks) but sirtainly not as fast as it would hit 100% in 4.11.1 it must be a combination bug of windows vmmem and docker desktop |
Are you back on 4.11.0 or 4.10.0? Looks like you and @labanv are on different versions. I went back to 4.11.0, and seems like my memory still creeps up, maybe more slowly though. |
I'm back at 4.11.0 but as I say it also increases memory usage but slowly. |
I just rolled back from 4.11.0 to 4.10.0 and rebuilt everything, will report back. |
Have been monitoring memory usage for 48 h now and it's looking good, RAM usage is at the expected level and hasn't creeped up. |
Probably related and it will be fixed soon: docker/for-win#12877 |
Also duplicates #8703 |
Hi mrgreywater, I have a fresh install of both WSL and Docker 4.12 and this issue still persists. |
@mrgreywater I re-installed with Docker Desktop 4.12, and I still seem to be encountering memory leaks when I build Docker images. Will continue to test as I will definitely be building more Docker images soon - and I will confirm if I see otherwise - but as of now this appears to still be active. EDIT:
|
for me process is based on:
|
Try these steps:
Updated: Some folks below (#8725 (comment)) had couple of additional configs in the file that worked for them (
|
Finally!!! This worked great!! Thanks a lot! It was driving me crazy!!! |
Great man! Thank you!! Works like a charm for me in Windows 11, WSL2 + Docker One more check I did:
Anyway, here is official doc |
This should not be the official recommended fix, a memory leak is a memory leak and it needs to be fixed. |
Well there are worse issues, when I copy files with Explorer sometimes it locks up all processes/ide etc and I can't even end task them. |
Similar issue here. I have a script with curl dl in a loop, multiple bg process. But the ram for Vmmem in Win10 side keeps increasing |
Same issue here. Running version 4.13.1 (90346). |
Same issue here |
I guess 32Gb ram only cuts about 30 minutes of docker building. I should get 256GB before this is fixed since I tend to develop and test builds for more then 7 hours. Any deals around ya'all? Edit: I figured my comment was not very helpful. To add to some context, when I am running VSCODE and normal containers, this is not that much of a problem. Its very noticeble when I am building containers for my staging builds. It eats way quickly. Edit 2: I have moved to VMWARE for now. It has much better memory managmenet then WSL2. |
same issue there, I have to restart wsl 2 times a day... Windows 10 + docker desktop 4.13.1 |
Yes, that's it. tho you could simply empty the cache every 5 minutes scheduling a crontab task with the following command: # echo '*/5 * * * * root sync; echo 1 > /proc/sys/vm/drop_caches' >> /etc/crontab you could also try the values I'm pretty confused on why this has not been done directly in wsl kernel in order to free unused cache. By the way this looks to me as a decent compromise. |
I got the same error usually. I searched a lot but didn't find the solution for this issue. So I uninstalled Docker Desktop, install Ubuntu from Microsoft store and installed Docker through Ubuntu terminal (using installing guide for Ubuntu, of course). It worked, vmmem process doesn't consume a lot of memory anymore. There's just one tiny note, you need to run command "wsl --shutdown" in cmd or powershell to shut down vmmem completely if you don't need to run Docker anymore. |
This issue seems to be at least as much a WSL2 issue as a Docker one. Today I was developing in WSL and found that Chrome was reporting out of memory and other programs were crashing. Most interestingly, while vmmem was using 15gb of RAM, task manager showed that I still had ~8gb of free system memory. Not sure what that part was about. |
Hi folks, we have just put out a new experimental feature in WSL that aims to address this in the latest update. Please update your More info on this release and the changes can be found here in the blog post. Please tell us what you think! Related to: #4166 |
Does it mean it affects the operation of docker? |
If it does. You can run it under cgroup v2. |
How is this useful if you are constantly working? CPU won't be idle then? I am still seeing 26gb vmmem with this setting enabled :( |
Memory Leak, pls Help 😁 |
This actually worked for me as an stable solution |
@nanake Are you saying that the solution to this:
is this?
|
Save your files often, otherwise they can become corrupt. Even the Git repo can become corrupt, so always push your commits to remote!!
I also encounter this issue. I have one or two GBs left, but WSL is still crashing while building some Dockerfiles...
Here we go again: fix something, break another. |
Issue persists. Docker consumes all memory available on WSL2. |
This issue makes my laptop unusable after a few hours of work. Got 24 GB out of 32 GB RAM allocated to WSL2. EDIT: adding TLDR; try to add the following lines to
|
Docker Desktop 4.27.0 |
Docker Desktop 4.27.2 |
Took me a month to get to this point after diagnosing random server crashes after I leave it alone for a while. Yep I am seeing this on my media server 😭 |
Same thing happening to me. |
I'm not sure 100%, but it seems they've fixed it in 4.28.0. Two days after update and no issues |
I'm still having that problem. Tried switching to Hyper-V and that didnt work, tried reinstall that didnt work and tried WSL config and still getting 100 % memory usage in two days of running docker containers. Docker: 4.28.0 .wslconfig:
I don't see that wsl/docker is using the memory in taskmgr.exe or RAMMap. |
I uninstalled and stopped using docker desktop ages ago, because of related problems, but was still experiencing this issue with Vmmem hogging memory, CPU, and high power usage. To reclaim my machines resources, I was closing and reopening VS code, which I think did most of the trick. The .wslconfig additions ( |
Hi folks, on the latest pre-release WSL versions we've made the 'dropCache' option on by default which should help address this use case. Please upgrade using |
I did as was instructed and memory was not reclaimed. I use fedoraremix as my WSL distro and Docker Desktop as a container backend. To test it out, I started a container and installed some large python packages within. After the installation was finished, memory use fell at ~10GB from the max 12GB allowed. The container was otherwise idle, so memory should have been freed. |
Version
Microsoft Windows [Version 10.0.19044.1889]
WSL Version
Kernel Version
5.10.102.1
Distro Version
Ubuntu-20.04
Other Software
Docker Desktop: 4.11.1
Repro Steps
You simply need to build docker images several times. It results in this:
Note: I don't even have any active Docker containers running. Everything's terminated.
It seems to be the same as this issue, reported 3 years ago and still unresolved: #4166
I never encountered this on MacOS, but it's slowing my development speed down greatly on Windows. It definitely gets worse the more times I build Docker images. It's resulting in build processes slowing down to somewhere between 1/10th and 1/50th the speed they run at when physical memory is available. It makes me need to restart my computer sometimes multiple times per day.
Expected Behavior
Memory gets released after processes terminate.
Actual Behavior
Memory does not get released, resulting in my computer using virtual memory and slowing to a crawl.
Resource usage (with no active containers running - all terminated):
Diagnostic Logs
No response
The text was updated successfully, but these errors were encountered: