Punto de unión NTFS de HDD a SSD, ¿provocará un cuello de botella en el rendimiento? (reubicación del juego de vapor)

13

¿Puede un punto de unión NTFS entre unidades de disco duro causar un cuello de botella? ¿O la unión se almacenará en la memoria caché?

Específicamente, quiero instalar Steam en un HDD magnético. Esto significa que todos los juegos se instalarán allí. Para beneficiarme de mi SSD, señalaré los juegos que estoy jugando activamente desde el directorio de Steam en el HDD al SSD.

Me preguntaba si esto causaría problemas de rendimiento. Cada vez que el juego accede a un archivo, ¿necesita leer el HDD, leer el punto de unión, resolver la nueva ruta en el SSD y luego obtener el archivo verdadero? ¿O el sistema operativo almacenará en caché esta redirección para que la penalización de rendimiento solo se alcance la primera vez?

¡Gracias!

ddtemplar
fuente
3
La definición de un punto de unión se almacena directamente en la entrada MFT responsable. Como el MFT está almacenado en la memoria caché, no esperaría que se acceda al HDD al trabajar con el directorio vinculado.
Gene
¡Gracias! Entonces no me preocuparé demasiado, a menos que empiece a notar ralentizaciones raras.
ddtemplar
2
Incluso si fuera necesario acceder al HDD para leer el punto de unión, es muy pequeño: la lectura terminaría casi de inmediato y solo tendría que suceder una vez, ya que se almacenaría en caché.
Adambean
Nota al margen: si instala la aplicación Steam en el SSD, aún puede cambiar el lugar donde se instala el juego dentro de Steam sin una unión.
cybernard

Respuestas:

5

Lo más probable es que no, no será un cuello de botella. Hay algo de sobrecarga asociada con las uniones NTFS, pero en su escenario debería ser insignificante.

Puede deshacerse de la sobrecarga moviendo físicamente los datos al SSD y sin usar cruces (lo cual parece ser la principal preocupación de su pregunta para mí), pero dudo que pueda medir la diferencia.

¿Dónde se almacenan y almacenan en caché las uniones?

Las uniones son el tipo de puntos de análisis que se almacenan en $Extend\$Reparse metarchivo (otro metarchivo más famoso es el $MFT).

Cuando un archivo o directorio tiene un punto de análisis asociado, NTFS crea un atributo nombrado $Reparsepara el punto de análisis. Este atributo almacena el código de análisis y los datos. Para que NTFS pueda localizar fácilmente todos los puntos de análisis en un volumen, un archivo de metadatos llamado \$Extend\$Reparsealmacena entradas que conectan el archivo de puntos de análisis y los números de entrada de directorio MFT a sus códigos de puntos de análisis asociados. NTFS ordena las entradas por número de entrada MFT en el $Ríndice.

fuente: Inside Win2K NTFS, Parte 1 por Mark Russinovich

Diagrama de análisis

Proceso de análisis

fuente: Inside Win2K NTFS, Parte 1 por Mark Russinovich

Hubo comentarios de que las uniones se almacenan en MFT y que MFT se almacena en caché. Bueno, ahora, cuando sabemos dónde se almacenan las uniones, necesitaría una fuente creíble para respaldar el reclamo de almacenamiento en caché; que no pude encontrar

Entonces no lo sé, pero no creo que importe.

¿Existe un escenario documentado cuando la unión cruzada de discos disminuyó el rendimiento?

Sí, ARF ha tenido problemas como este. Estaba comparando la eliminación por lotes de archivos pequeños, y cuando la operación se realizó a través de la unión, el factor limitante ya no era IO (como se esperaba) sino la CPU. Este punto de referencia también se discutió en detalle en GitHub .

Vlastimil Ovčáčík
fuente