08 março 2023

Limitando uso de recursos de máquina pelo Docker no WSL2 (VMMEM)

 Trabalhar com containers no Windows tornou-se fácil depois do WSL2. Com ele é possível ter uma experiência de usabilidade próxima ao GNU/Linux, porém existe um problema crônico em toda solução Windows que é o excesso de uso de memória RAM, causando lentidão e travamentos no sistema, afetando outros serviços e recursos. No Docker for Windows não é diferente, após fazer a instalação e integração com WSL2, é necessário deixar explicito o limite de uso de recursos, seja CPU ou RAM.

Como limitar?

No meu caso, estava com um sério problema de excesso de uso de memória RAM. Minha máquina é bem limitada, porém o Docker com o WSL utilizava em médio 70 à 90% da memória (de 4GB). Meu objetivo era limitar a 1GB de uso, apenas da memória RAM. Para isso é necessário criar um arquivo .wslconfig no "HOME" do Windows (%UserProfile%/.wslconfig, o mesmo que C:\Users\<meu usuario>\.wslconfig).

Abra o explorador de arquivos (win + E) e na barra de endereços digite:




Após aberto o editor com o arquivo, basta limitar o número da memória RAM a ser utilizada:

[wsl2]
memory=1GB
debugConsole=true

Além de notar o desempenho melhor para confirmar a configuração, é possível visualizar no Gerenciador de Tarefas o processo VMMen com consumo abaixo dos 1GB:



Referências: