Windows con un mejor sistema de archivos

14

Según mis observaciones como desarrollador de Java que trabaja en estaciones de trabajo de Windows, NTFS es lento en comparación con los sistemas de archivos de Linux. La pregunta es, ¿hay algo en el controlador NTFS que pueda ajustarse manualmente, por ejemplo, darle más memoria para caché? ¿Habilitar algunos algoritmos experimentales? Si eso no está disponible, ¿hay quizás otro sistema de archivos que pueda usarse en Windows, tal vez incluso comercial, que sea más rápido que NTFS?

Para ser claros, no estoy buscando mejorar las velocidades de compilación para proyectos de Maven, me gustaría obtener una mejora general para el sistema operativo. Tengo la sensación de que NTFS está desactualizado y es lento en comparación con los sistemas de archivos de Linux. Me parece extraño que el sistema operativo más popular del planeta tenga solo un sistema de archivos que todavía requiera desfragmentación manual. Tal vez no es una alternativa?

Actualización: Esto es lo que es lento según mis observaciones. Estoy construyendo / empaquetando un proyecto, lo que significa muchas operaciones de lectura / escritura en el disco. El sistema de compilación es multiplataforma (Java, Maven), por lo que puedo realizar exactamente las mismas acciones cuando arranco en Ubuntu, por ejemplo.

En Linux mis compilaciones son al menos 1/3 más rápidas. De ahí la pregunta sobre el sistema de archivos. Lo siento si está fuera de lugar.

Yuri Ushakov
fuente
77
¿De qué manera es lento NTFS? ¿Cómo está midiendo su velocidad para saber que es más lenta que cualquier otro sistema de archivos para exactamente las mismas operaciones? NTFS es el único sistema de archivos compatible de forma nativa (aparte de FAT que tiene limitaciones) desde el que Windows puede arrancar, aunque creo que puede obtener un controlador de sistema de archivos ext3 para particiones que no sean de arranque.
Mokubai
Sí, por favor, ilumínanos, ¿cómo es lento NTFS?
JL.
1
¿Pero cuál es la pregunta aquí? ¿Es así como puede acelerar NTFS o si Windows puede usar un sistema de archivos diferente?
Ivo Flipse
1
@ ivo-flipse: lo siento por causar confusión aquí, estoy interesado en aprender algo sobre ambas preguntas. Como, ¿no hay una alternativa comprobada a NTFS en Windows? Y si no, ¿sería posible aumentar generalmente el rendimiento de NTFS, como dar más memoria a algunos cachés o habilitar algunos mecanismos experimentales?
Yuri Ushakov
1
@ sinni800 Eso es basura, lo siento. Si bien admito que, como SO de escritorio, Linux está lejos de ser perfecto, como SO de servidor es mucho mejor que Windows para casi todas las cargas de trabajo. No hay duda de que el 96.6% de los principales 1 millón de sitios web que utilizan un sistema operativo de calidad beta.
mjaggard

Respuestas:

3

Si bien me encantaría ver algo como ZFS disponible para los hosts de Windows, NTFS no es un sistema de archivos horrible. Admite la mayoría de las funciones del sistema de archivos "modernas" (atributos extendidos, registro en diario, ACL, lo que sea), pero se ve obstaculizado por Explorer y la mayoría de las otras aplicaciones que no admiten ninguna de estas.

Una cosa que matará absolutamente su rendimiento es tener "demasiadas" entradas en un directorio. Una vez que pase un par de miles de entradas en un directorio, todo se ralentizará. Literalmente, toda la máquina dejará de esperar a que NTFS cree o elimine entradas cuando esto ocurra.

Solía ​​trabajar con una aplicación que generaba documentos basados ​​en HTML para ensamblados .NET; crearía un archivo por propiedad, método, clase, espacio de nombres, etc. Para ensamblajes más grandes veríamos 20 + k archivos, todos bien volcados en un solo directorio. La máquina pasaría un par de horas durante la compilación bloqueada en NTFS.

En teoría, Windows admite complementos del sistema de archivos, que harían posible ZFS nativo, ext3 o lo que sea (incluso FUSE). En la práctica, las API no están documentadas, por lo que está completamente solo.

Ahora, ya que está haciendo el desarrollo de Java, ¿podría instalar un sistema operativo diferente en su máquina, o usar una máquina virtual sobre Windows?

Además, es posible que desee probar algunos puntos de referencia del sistema de archivos independientes de la plataforma (iozone, bonnie ... probablemente haya otros más modernos que no conozco, tal vez incluso algunos escritos en Java) para ver si es en realidad el sistema de archivos te detiene, o si es algo más. Optimización prematura y todo eso ...

chrish
fuente
El Sistema de archivos instalables se ha documentado al menos desde 2000. La falta de complementos siempre se debió a la dificultad y la falta de interés. Todavía es difícil, pero FUSE y FSDK ahora están disponibles.
user165568
5
  • Desactivar el último tiempo de acceso
  • Desactiva los nombres de archivos cortos
  • Desactivar Eliminar notificación
  • Desactivar indexación
  • Deshabilitar el diario
  • Inhabilite las instantáneas y las versiones y cuotas anteriores y los recursos compartidos.
  • Habilitar la verificación transversal de derivación

Supongo que la solución real sería reescribir su sistema de compilación para que use la API nativa del sistema de archivos de Windows, en lugar de la API de Unix (fopen, etc.) debajo del marco de portabilidad. Pero eso no va a suceder, así que básicamente estás atrapado con cualquier nivel de rendimiento que ellos pensaban que era aceptable.

A menudo, cuando se utilizan sistemas no escritos originalmente para Windows, se da cuenta de que el recorrido del directorio se ha manejado muy mal, así que asegúrese de tener un árbol de directorios muy plano.

usuario165568
fuente
1
Esta sería una mejor respuesta si proporcionara más información. 1. Alguna medida de cuánto tiempo se podría ahorrar para cada uno y 2. Cómo hacer estos cambios.
mjaggard
3

Hay un sistema de archivos que es compatible con el nuevo sistema operativo Windows Y es más rápido que NTFS. Es exFAT. Existe la posibilidad de usarlo para la unidad del sistema. Pero no se sabe qué complicaciones podría tener.

Sin embargo, ciertamente puede usarlo para otras particiones. Es más rápido con operaciones de lectura / escritura aleatorias. Perfecto para un SSD por ejemplo.

sinni800
fuente
1
Lo probé justo ahora, y exFAT parece más lento. Primera compilación en NTFS: 36.083s, segundo: 19.884s. Primera compilación en exFAT: 41.160s, segundo: 27.291s.
Yuri Ushakov
Huh exFAT es el único otro sistema de archivos que ahora es compatible de forma nativa con Windows y PODRÍA usarse como unidad del sistema (los permisos están presentes). Una vez vi una prueba en línea y decía que exFAT era más rápido con lecturas aleatorias.
sinni800
La razón por la que la prueba dijo que exFAT fue más rápido probablemente fue porque no lo probaron en un directorio que contenía> 32768 entradas. Además, las versiones más nuevas de Windows podrían haberse ralentizado aún más debido a los cambios internos. Dios (MS) sabe lo que sucede en una opendir()llamada (o equivalente).
MattBianco
2

¿Tiene un programa antivirus en ejecución que realiza la comprobación de acceso / escritura para la carpeta de su proyecto?

La compilación implica leer y escribir muchos archivos pequeños en rápida sucesión, lo que puede abrumar al antivirus. Agregue su carpeta de proyecto a la lista de carpetas excluidas y vea si eso mejora la situación.

En Linux usted (probablemente) no tiene ningún software antivirus ...

ChrisF
fuente
Defender está apagado, AV está apagado (o desinstalado por completo, según sea el caso).
Yuri Ushakov
@Yuri - oh bueno.
ChrisF