Base de conhecimento →5 min de leituraAtualizado: 2026-09-21

Como limitar o uso de memória e CPU do WSL2 no Windows 11

O WSL2 não roda o Linux ao lado do Windows, e sim dentro de uma máquina virtual leve que aparece no Gerenciador de Tarefas como o processo Vmmem: nas builds atuais do Windows 11, ele pode crescer até 50% da sua RAM (80% nas antigas) e usar metade dos núcleos lógicos. A memória liberada não volta sozinha para o Windows — o kernel a mantém como cache de páginas, e por isso o Vmmem fica lá em cima por um bom tempo mesmo com tudo fechado dentro da distribuição. Tudo isso é controlado por um arquivo de texto chamado .wslconfig na pasta do seu perfil: duas linhas como memory=6GB e processors=4 cortam o apetite da VM, e um único wsl --shutdown aplica a mudança.

Por que o Vmmem devora sua RAM e o que o .wslconfig controla

O kernel do Linux não devolve com boa vontade a memória que libera: ele a mantém como cache de páginas, por isso depois de uma build grande o Vmmem fica lá em cima por um bom tempo, mesmo com tudo fechado dentro da distribuição. Não é vazamento, é comportamento normal do kernel; mas se suas distribuições convivem com navegador, IDE e outras VMs, vale definir o teto por escrito. Os 50% padrão faziam sentido quando os PCs eram vazios; hoje, com cinco aplicativos famintos dividindo 16 GB, é demais.

O volante é o arquivo %UserProfile%\.wslconfig, lido uma única vez na inicialização da máquina virtual, então toda mudança precisa de um wsl --shutdown em seguida. Os limites valem para todas as distribuições de uma vez — não dá para definir um teto diferente para cada uma nesse arquivo. E ele só afeta o WSL2: a primeira geração traduz as chamadas do Linux dentro do próprio Windows e não tem máquina virtual que se possa limitar.

  • memory=6GB — o teto de RAM para toda a máquina virtual, todas as distribuições juntas
  • processors=4 — quantos núcleos lógicos o WSL2 enxergará
  • swap=4GB — tamanho do arquivo de troca do Linux (padrão: 25% da RAM, no máximo 8 GB)
  • autoMemoryReclaim=gradual — opção experimental que devolve ao Windows a memória liberada (WSL 1.3.10+)
  • sparseVhd=true — opção experimental que permite ao ext4.vhdx encolher quando arquivos são apagados

Definindo os limites passo a passo

Abra o Bloco de Notas, cole o cabeçalho de seção [wsl2] e, abaixo dele, as linhas memory=6GB, processors=4 e swap=4GB, e salve o arquivo como %UserProfile%\.wslconfig. Na caixa de salvamento, escolha Tipo: Todos os arquivos (*.*) e codificação UTF-8, senão o Windows cria em silêncio um .wslconfig.txt que o WSL jamais vai ler. Valor sem unidade — memory=6, por exemplo — é interpretado como bytes: o sufixo GB não é enfeite, é obrigatório.

Abra o PowerShell ou o Windows Terminal, execute wsl --shutdown, espere uns dez segundos e reabra sua distribuição. Dentro do Linux, free -h mostra a quantidade já limitada em vez de toda a RAM física, e nproc imprime os núcleos permitidos. Se o wsl --version informar 1.3.10 ou mais recente, você pode acrescentar abaixo do bloco [wsl2] uma seção [experimental] com autoMemoryReclaim=gradual e sparseVhd=true e repetir o desligamento; em versões mais antigas, atualize antes com wsl --update em um terminal de administrador.

Quando revisar os números

Observe o Vmmem no Gerenciador de Tarefas por uma semana de uso normal: para navegador, editor e contêineres leves, 4 a 6 GB bastam, enquanto builds pesadas do Docker ou grandes projetos JavaScript podem pedir, com razão, os 8 GB inteiros. Ajuste memory= em passos de 2 GB e deixe pelo menos metade da RAM física para o Windows em máquinas com 16 GB ou menos. Se o disco das distribuições vive crescendo, o sparseVhd=true põe fim à expansão contínua do ext4.vhdx. Vale conferir as configurações depois de cada atualização de recurso do Windows, porque elas às vezes trocam o pacote WSL e mudam o comportamento da VM.

Perguntas e respostas

Quanta memória devo dar ao WSL2?

Numa máquina com 16 GB, 6 GB cobrem o desenvolvimento diário; com apenas 8 GB de RAM, fique em 4 GB para o Windows não começar a esticar o arquivo de paginação. Aumente o teto em passos pequenos e só quando as builds realmente falharem por falta de memória.

Por que o Vmmem continua alto mesmo com tudo fechado no Linux?

O kernel mantém a memória liberada como cache de páginas e não a devolve ao Windows por conta própria. Rode wsl --shutdown no fim do expediente ou ative autoMemoryReclaim=gradual a partir do WSL 1.3.10 para a memória voltar sozinha.

O .wslconfig funciona com WSL1?

Não. O WSL1 traduz as chamadas do Linux dentro do próprio Windows: não há máquina virtual, nem Vmmem, nem nada a limitar. Se você quer limites, converta antes a distribuição com wsl --set-version <nome> 2.

Veja exatamente o que está incluído antes de comprar.

O teste único de 30 minutos cobre os recursos básicos. Os recursos marcados PRO ficam bloqueados até a ativação de uma licença paga.

Continue lendo

Todos os artigos · FAQ

Fale com a gente: [email protected]