Tema de Jannah La licencia no está validada. Vaya a la página de opciones del tema para validar la licencia. Necesita una sola licencia para cada nombre de dominio.

Los proyectos de WSL2 en una unidad de Windows están afectando el rendimiento: He aquí por qué.

¿Por qué los proyectos de WSL2 en un disco de Windows provocan ralentizaciones del rendimiento y cómo se puede evitar este problema?

Muchos desarrolladores dependen de un entorno Subsistema de Windows para Linux Las herramientas de Linux pueden funcionar sin problemas en Windows, pero el rendimiento de este entorno puede deteriorarse significativamente al ejecutar proyectos directamente desde discos de Windows. Esto suele manifestarse en una ejecución lenta de comandos, una carga de archivos retardada o una respuesta deficiente al manejar proyectos grandes.

Esta disminución del rendimiento se debe a la forma en que WSL2 gestiona el sistema de archivos, donde se accede a los archivos de Windows a través de una capa intermedia que afecta a las velocidades de lectura y escritura. Cuantos más archivos o procesos haya, mayor será el impacto, lo que hace que el entorno de desarrollo sea menos eficiente en comparación con la ejecución en un sistema Linux nativo o en el propio sistema de archivos de WSL2.

Afortunadamente, el rendimiento puede mejorarse significativamente migrando los proyectos al sistema de archivos interno de WSL2 o adaptando los flujos de trabajo a este entorno. Comprender la causa raíz del problema ayuda a tomar mejores decisiones y a lograr una experiencia de desarrollo más rápida y estable.

Cuando empiezas a usar el Subsistema de Windows para Linux, todo parece funcionar con normalidad. Puedes clonar un repositorio, instalar dependencias, ejecutar tu aplicación e incluso convencerte de que ahora tienes "Linux en Windows".

Entonces, uno percibe que algo no funciona bien y nota que los comandos que deberían ser instantáneos tardan bastante. Las instalaciones de paquetes son lentas, los monitores de archivos se comportan de forma errática y los servidores de desarrollo parecen lentos de maneras difíciles de explicar. Inicialmente, se culpa a WSL2 como el culpable obvio, pero suele ser el equivocado.

El verdadero problema reside en la ubicación de tus archivos.

El sistema de archivos de Windows impone una penalización de rendimiento oculta.

Si su proyecto está ubicado en un lugar como:

/mnt/c/Usuarios/TuNombre/proyectos/mi-aplicación

En realidad no estás trabajando en sistema de archivos Linux. Estás trabajando en el sistema de archivos de Windows, al que se accede a través de una capa de traducción.

Este detalle es fácil de pasar por alto y, sorprendentemente, costoso. WSL2 ejecuta un núcleo Linux real dentro de una máquina virtual ligera. Dentro de ese entorno, existe un sistema de archivos Linux nativo. Es rápido, consistente y se comporta exactamente como cabría esperar de las herramientas de Linux.

Sin embargo, cuando acceda a los archivos en /mnt/c، /mnt/dEn cualquier unidad de disco con Windows instalado, cada proceso de archivo debe cruzar un límite entre Linux y Windows. Es en este límite donde el rendimiento se resiente (de forma silenciosa, sin mostrar errores, lo que solo empeora las cosas).

¿Por qué esto en realidad ralentiza las cosas?

Las cargas de trabajo con gran cantidad de archivos aumentan el coste de la traducción del sistema de archivos.

Las cargas de trabajo de desarrollo modernas se basan en gran medida en archivos. Considere lo que sucede cuando ejecuta algo como:

npm install
pip install
cargo build
npm run dev

Estas herramientas crean, leen y modifican miles de archivos pequeños. Dependen de un acceso rápido al sistema de archivos y de un comportamiento predecible.

En el sistema de archivos nativo de Linux, esto está optimizado, pero en el sistema de archivos de Windows al que se accede a través de WSL2, cada una de estas operaciones implica una traducción entre dos sistemas diferentes.

Como resultado, las cosas funcionan, pero todo va más lento. A veces va la mitad de lento, a veces diez veces más lento, y en algunos casos, incluso peor. No siempre se nota de inmediato porque la ralentización se distribuye entre muchos procesos pequeños, pero con el tiempo se acumula.

Una de las maneras más fáciles de detectar este problema es usando Git. Ejecuta `git status` o `git checkout` en un repositorio grande almacenado en `/mnt/c` y compáralo con el mismo repositorio en tu directorio personal de Linux.

La diferencia no es sutil; Git realiza muchas operaciones en el sistema de archivos. Escanea directorios, verifica metadatos y compara estados de archivos. En un sistema de archivos lento, esto se hace dolorosamente evidente. A menudo se culpa a Git o se asume que el repositorio es simplemente "demasiado grande". En realidad, la mayoría de los problemas se deben a la elección del sistema de archivos.

Otro problema común es la monitorización de archivos no confiables. Herramientas como Webpack, Vite o Nodemon se basan en eventos del sistema de archivos para detectar cambios. En un sistema de archivos nativo de Linux, estos eventos se gestionan de forma eficiente.

Más allá de los límites de Windows, las cosas se vuelven inconsistentes.

Es posible que observes lo siguiente:

  • Los cambios no conducen a la reconstrucción.
  • recarga retardada
  • Mayor uso de la CPU debido a los mecanismos de sondeo de respaldo

Esto no es un problema de tus herramientas; es consecuencia de cómo se traducen las notificaciones del sistema de archivos entre Windows y Linux. Trasladar el proyecto al sistema de archivos WSL2 debería solucionar estos problemas.

La engañosa comodidad de /mnt/c

La comodidad enmascara el coste de acceso a los sistemas.

Es perfectamente comprensible por qué la gente termina aquí. Empiezas a trabajar en Windows, y tus archivos y editor están ahí. Parece natural acceder a ellos desde WSL2 a través de /mnt/c.

Esto crea la ilusión de un entorno unificado. Un único sistema de archivos, accesible tanto desde Windows como desde Linux, excepto que no está unificado, sino que es un puente, y los puentes tienen sus inconvenientes.

Esta configuración es adecuada para el acceso ocasional a archivos, pero no para cargas de trabajo de desarrollo activas que dependen de operaciones frecuentes del sistema de archivos.

Cuando trabajas en un sistema de archivos Linux dentro de WSL2, la diferencia es inmediata. Tu ruta se ve así:

imagen_2026-03-31_182038913 Los proyectos WSL2 en el motor de Windows están perjudicando el rendimiento: He aquí por qué.

Ahora trabajas completamente dentro de un entorno Linux, sin capa de traducción ni sobrecarga de operación cruzada. Siguiendo esta guía, si intentas instalar dependencias, notarás que se completan mucho más rápido y que los servidores de desarrollo se inician con mayor rapidez y se recargan de forma más fiable.

Pero ¿qué ocurre con el acceso desde Windows?

Los editores modernos ya admiten flujos de trabajo remotos en Linux.

Esta es la parte que genera dudas. Si tu proyecto está ubicado en WSL2, ¿cómo lo abres en tu editor de Windows?

La respuesta es que las herramientas modernas ya han resuelto este problema. Si estás usando VS Code, entonces Extensión remota de WSL Te permite abrir directamente tu sistema de archivos Linux. VS Code funciona en Windows, pero los archivos permanecen dentro de WSL2.

captura-de-pantalla-2026-03-31-17-54-15 Los proyectos WSL2 en la unidad de Windows están afectando el rendimiento: aquí está el porqué

Este es el flujo de trabajo previsto. Evita (aunque no por completo) las penalizaciones de rendimiento, manteniendo intacta la experiencia de desarrollo. También puede acceder a los archivos WSL a través de la siguiente ruta:

\wsl$TuDistribuciónhomeTusProyectosDeUsuario

Pero para el desarrollo activo, un enfoque de integración remota es más limpio.

¿Cuándo podrías seguir usando /mnt/c?

Algunas cargas de trabajo aún se benefician del sistema de archivos de Windows.

Para ser justos, el sistema de archivos de Windows no es inútil en este contexto. Existen casos de uso válidos, como acceder a documentos o archivos multimedia, compartir scripts sencillos entre entornos e interoperabilidad con herramientas exclusivas de Windows. Sin embargo, para el desarrollo activo, especialmente para proyectos que involucren grandes árboles de dependencias u operaciones de archivos repetitivas, no es el lugar adecuado para alojar el proyecto. Es útil pensar en WSL2 no como "Linux dentro de Windows", sino como un sistema Linux independiente que se integra bien con Windows.

Una vez que se adopta este modelo, la decisión sobre el sistema de archivos resulta evidente. Normalmente, no se desarrollaría un proyecto de Linux en un sistema de archivos basado en red con alta latencia; se mantendría local. En WSL2, el sistema de archivos de Linux es el entorno local, y el sistema de archivos de Windows se considera prácticamente remoto desde la perspectiva de Linux.

Repararlo lleva unos minutos.

Transfiere o clona el proyecto dentro del sistema de archivos de Linux.

La solución no es complicada. Todo lo que tienes que hacer es mover tu proyecto:

mv /mnt/c/Users/YourName/projects/my-app ~/projects/ 

O clónalo directamente dentro de WSL2:

git clone <repo>  ~/projects/my-app 

Actualiza tu editor de código para abrir el nuevo sitio.


El rendimiento depende más de la ubicación que de la configuración.

WSL2 funciona mejor cuando se trata como un entorno Linux completo, respetando sus límites internos. Una vez que un proyecto se integra en este marco, desaparecen la mayoría de las dificultades asociadas con los flujos de trabajo híbridos. Windows sigue siendo útil como capa de interfaz, pero el contexto de implementación vuelve a ser coherente y las herramientas se comportan según su diseño original.

Lo interesante es lo poco que se necesita para alcanzar este estado. Cambiar de ubicación afecta más al rendimiento que la mayoría de los ajustes de configuración. Una vez que esto se vuelve intuitivo, el comportamiento anterior empieza a parecer menos misterioso y más bien una consecuencia esperada de navegar por sistemas que nunca se optimizaron para un acceso constante de ida y vuelta.

Ir al botón superior