Base de conocimientos →5 min de lecturaActualizado: 2026-09-21

Cómo limitar el uso de memoria y CPU de WSL2 en Windows 11

WSL2 no ejecuta Linux junto a Windows, sino dentro de una máquina virtual ligera que en el Administrador de tareas aparece como el proceso Vmmem: en las compilaciones actuales de Windows 11 puede crecer hasta el 50% de tu RAM (en las antiguas, hasta el 80%) y usar la mitad de los núcleos lógicos. La memoria liberada no vuelve sola a Windows: el kernel la retiene como caché de páginas, y por eso Vmmem se queda alto un buen rato aunque cierres todo dentro de la distribución. Todo esto se controla con un archivo de texto llamado .wslconfig en la carpeta de tu perfil: un par de líneas como memory=6GB y processors=4 recortan su apetito, y un solo wsl --shutdown aplica el cambio.

Por qué Vmmem devora tu RAM y qué controla .wslconfig

El kernel de Linux no devuelve con gusto la memoria que libera: la retiene como caché de páginas, así que tras una compilación grande Vmmem se queda alto un buen rato aunque dentro ya esté todo cerrado. No es una fuga, es el comportamiento normal del kernel; pero si tus distribuciones conviven con el navegador, el IDE y otras máquinas virtuales, el techo conviene fijarlo por escrito. Ese 50% por defecto era razonable cuando los equipos iban vacíos; hoy, con cinco aplicaciones hambrientas repartiéndose 16 GB, es demasiado.

El volante es %UserProfile%\.wslconfig, que se lee una sola vez al arrancar la máquina virtual, así que cada cambio exige después un wsl --shutdown. Los límites se aplican a todas las distribuciones a la vez: con este archivo no se puede poner un techo distinto a cada una. Además, solo afecta a WSL2; la primera generación traduce las llamadas de Linux dentro del propio Windows y no tiene máquina virtual que limitar.

  • memory=6GB — el techo de RAM para toda la máquina virtual, todas las distribuciones juntas
  • processors=4 — cuántos núcleos lógicos verá WSL2
  • swap=4GB — tamaño del archivo de intercambio de Linux (por defecto: 25% de la RAM, máximo 8 GB)
  • autoMemoryReclaim=gradual — opción experimental que devuelve a Windows la memoria liberada (WSL 1.3.10+)
  • sparseVhd=true — opción experimental que permite que ext4.vhdx se encoja al borrar archivos

Fijar los límites paso a paso

Abre el Bloc de notas, pega la cabecera de sección [wsl2] y debajo las líneas memory=6GB, processors=4 y swap=4GB, y guarda el archivo como %UserProfile%\.wslconfig. En el cuadro de guardado elige Tipo: Todos los archivos (*.*) y codificación UTF-8, o Windows creará en silencio un .wslconfig.txt que WSL jamás leerá. Un valor sin unidad —por ejemplo, memory=6— se interpreta como bytes, así que el sufijo GB no es decoración: es obligatorio.

Abre PowerShell o Windows Terminal, ejecuta wsl --shutdown, espera unos diez segundos y vuelve a abrir tu distribución. Dentro de Linux, free -h muestra ya la cantidad recortada en lugar de toda la RAM física, y nproc imprime los núcleos permitidos. Si wsl --version informa de 1.3.10 o posterior, puedes añadir debajo del bloque [wsl2] una sección [experimental] con autoMemoryReclaim=gradual y sparseVhd=true y repetir el apagado; en versiones más antiguas, actualiza antes con wsl --update en una consola de administrador.

Cuándo conviene revisar las cifras

Vigila Vmmem en el Administrador de tareas durante una semana de trabajo normal: para el navegador, un editor y contenedores ligeros bastan 4–6 GB, mientras que las builds grandes de Docker o los proyectos JavaScript pesados pueden pedir con razón los 8 GB. Ajusta memory= en pasos de 2 GB y deja al menos la mitad de la RAM física para Windows en equipos de 16 GB o menos. Si el disco de las distribuciones no deja de crecer, sparseVhd=true frena la expansión constante de ext4.vhdx. Vale la pena revisar la configuración tras cada actualización de características de Windows, porque a veces renuevan el paquete WSL y alteran su comportamiento.

Preguntas y respuestas

¿Cuánta memoria debo dar a WSL2?

En un equipo de 16 GB, 6 GB cubren el desarrollo diario; con solo 8 GB de RAM quédate en 4 GB para que Windows no empiece a paginar. Sube el techo en pasos pequeños y solo cuando las builds fallen de verdad por falta de memoria.

¿Por qué Vmmem sigue alto aunque cierre todo dentro de Linux?

El kernel mantiene la memoria liberada como caché de páginas y no la devuelve a Windows por iniciativa propia. Ejecuta wsl --shutdown al terminar la jornada o activa autoMemoryReclaim=gradual a partir de WSL 1.3.10 para que la memoria vuelva sola.

¿Funciona .wslconfig con WSL1?

No. WSL1 traduce las llamadas de Linux dentro del propio Windows: no hay máquina virtual, ni Vmmem, ni nada que limitar. Si quieres límites, convierte antes la distribución con wsl --set-version <nombre> 2.

Consulta qué incluye antes de comprar.

La prueba única de 30 minutos incluye las funciones básicas. Las funciones marcadas PRO permanecen bloqueadas hasta activar una licencia de pago.

Sigue leyendo

Todos los artículos · FAQ

Escríbenos: [email protected]