El Subsistema de Windows para Linux (WSL) ha demostrado ser una herramienta esencial para desarrolladores que buscan integrar Linux en su flujo de trabajo en Windows. Sin embargo, para obtener el mejor rendimiento en escenarios de desarrollo intensivo, es importante realizar ajustes y configuraciones avanzadas. En este artículo, aprenderás cómo optimizar WSL con ejemplos prácticos y código, además de visualizar los resultados con capturas de pantalla y diagramas.
1. Configuración de recursos asignados
WSL 2 utiliza una máquina virtual ligera para ejecutar el kernel de Linux. De forma predeterminada, WSL asigna recursos de manera dinámica, pero puedes ajustar manualmente la cantidad de CPU y memoria disponibles para mejorar el rendimiento.
Paso 1: Crear o editar el archivo .wslconfig
- Abre el archivo
.wslconfig
en el directorio de tu usuario:notepad %USERPROFILE%\.wslconfig
- Configura los parámetros según tus necesidades:
[wsl2] memory=4GB # Límite de memoria RAM processors=2 # Número de CPUs asignadas
- Reinicia WSL para aplicar los cambios:
wsl --shutdown wsl
2. Mejorar el rendimiento del sistema de archivos
Las operaciones de E/S son un área donde el rendimiento puede degradarse, especialmente al trabajar con archivos en el sistema de Windows desde Linux. Para mejorar esto:
Paso 1: Usa el sistema de archivos de Linux para proyectos intensivos
Guarda tu código y datos en el sistema de archivos nativo de Linux (/home/<usuario>
en lugar de /mnt/c
) para minimizar la latencia.
# Crear un directorio en el sistema de archivos de Linux
mkdir -p ~/projects/my-intensive-app
# Clonar un repositorio
cd ~/projects/my-intensive-app
git clone https://github.com/example/project.git
Paso 2: Deshabilitar el acceso automático a carpetas de Windows
Evita que WSL indexe innecesariamente carpetas de Windows configurando los métodos de montaje:
- Agrega esta configuración a
.wslconfig
:[automount] enabled=false
- Reinicia WSL.
Visualización
3. Configurar un servidor DNS personalizado
Por defecto, WSL utiliza el servidor DNS de Windows. Sin embargo, puedes mejorar el rendimiento de las solicitudes de red configurando un servidor DNS optimizado.
Paso 1: Modificar el archivo de resolución de DNS
- Crea o edita
/etc/wsl.conf
en tu distribución:sudo nano /etc/wsl.conf
- Agrega las siguientes líneas:
[network] generateResolvConf = false
- Configura manualmente el servidor DNS:
sudo rm /etc/resolv.conf echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
- Reinicia WSL:
wsl --shutdown wsl
## 4. Habilitar aceleración de hardware para Docker
Si utilizas Docker en WSL 2, habilitar la aceleración de hardware puede reducir los tiempos de construcción y mejorar la eficiencia general.
### Paso 1: Instalar los controladores de GPU
1. Asegúrate de tener los controladores de GPU compatibles con WSL 2 instalados:
- [Controladores NVIDIA para CUDA en WSL](https://developer.nvidia.com/cuda/wsl)
### Paso 2: Configurar Docker para usar GPU
1. Instala el paquete `nvidia-container-toolkit` dentro de tu distribución:
sudo apt update sudo apt install -y nvidia-container-toolkit
2. Verifica que la GPU esté disponible:
docker run –rm –gpus all nvidia/cuda:11.0-base nvidia-smi
## 5. Ajustar la configuración del kernel Linux
WSL 2 utiliza un kernel Linux real que puede ajustarse para optimizar su rendimiento. Esto se logra a través del archivo `/etc/sysctl.conf`.
### Paso 1: Optimizar parámetros de red
1. Edita `/etc/sysctl.conf`:
sudo nano /etc/sysctl.conf
2. Agrega los siguientes ajustes:
net.core.default_qdisc=fq net.ipv4.tcp_congestion_control=bbr
3. Aplica los cambios:
sudo sysctl -p
## Conclusión
Con estos ajustes, puedes optimizar **WSL** para maximizar su rendimiento en proyectos de desarrollo intensivo. Desde la asignación eficiente de recursos hasta la configuración de red y almacenamiento, estos pasos te ayudarán a aprovechar al máximo esta poderosa herramienta.