Punto di giunzione NTFS da HDD a SSD, causerà colli di bottiglia delle prestazioni? (trasferimento del gioco a vapore)


13

Un punto di giunzione NTFS tra HDD può causare un collo di bottiglia? O l'incrocio verrà memorizzato nella cache?

In particolare, voglio installare Steam su un HDD magnetico. Ciò significa che tutti i giochi verranno installati lì. Per trarre vantaggio dal mio SSD, indicherò i giochi a cui sto giocando attivamente dalla directory di Steam sull'HDD all'SSD.

Mi chiedevo se questo avrebbe causato problemi di prestazioni. Ogni volta che il gioco accede a un file, deve leggere l'HDD, leggere il punto di giunzione, risolvere il nuovo percorso sull'SSD, quindi ottenere il file vero? O il sistema operativo memorizzerà nella cache questa direzione in modo che la penalità prestazionale venga colpita solo la prima volta?

Grazie!


3
La definizione di un punto di giunzione viene memorizzata direttamente nella voce MFT responsabile. Dato che l'MFT è memorizzato nella cache, non mi aspetterei di accedere all'HDD quando si lavora con la directory collegata.
Gene,

Grazie! Allora non mi preoccuperò troppo, a meno che non inizi a notare strani rallentamenti.
ddtemplar,

2
Anche se è necessario accedere all'HDD per leggere il punto di giunzione, è minuscolo: la lettura sarebbe finita quasi immediatamente e dovrebbe avvenire solo una volta poiché verrebbe memorizzata nella cache.
Adambean,

Una nota a margine: se installi l'applicazione Steam sull'SSD, puoi comunque cambiare la posizione in cui il gioco è installato all'interno di Steam senza una giunzione.
cybernard,

Risposte:


5

Molto probabilmente no, non sarà un collo di bottiglia. C'è qualche sovraccarico associato alle giunzioni NTFS, ma nel tuo scenario dovrebbe essere trascurabile.

Puoi eliminare l'overhead spostando fisicamente i dati sull'unità SSD e non utilizzando affatto le giunzioni (che a me sembra essere la preoccupazione principale della tua domanda), ma dubito che potresti misurare la differenza.

Dove sono archiviati e memorizzati nella cache gli svincoli?

Le giunzioni sono tipi di punti di analisi che sono tutti memorizzati in $Extend\$Reparse metafile (un altro metafile più famoso è il $MFT).

Quando a un file o una directory è associato un punto di analisi, NTFS crea un attributo denominato $Reparseper il punto di analisi. Questo attributo memorizza il codice e i dati di analisi. Affinché NTFS sia in grado di individuare facilmente tutti i punti di analisi su un volume, un file di metadati denominato \$Extend\$Reparsememorizza le voci che collegano il file di punti di analisi e i numeri delle voci MFT della directory ai codici di punti di analisi associati. NTFS ordina le voci in base al numero della voce MFT $Rnell'indice.

fonte: Inside Win2K NTFS, Part 1 di Mark Russinovich

Ripetere il diagramma

Reparse process

fonte: Inside Win2K NTFS, Part 1 di Mark Russinovich

Ci sono stati commenti secondo cui le giunzioni sono memorizzate in MFT e che MFT è memorizzato nella cache. Bene ora, quando sappiamo dove sono archiviate le giunzioni, richiederei una fonte credibile per supportare la richiesta di memorizzazione nella cache; che non sono riuscito a trovare.

Quindi non lo so, ma non penso che importi.

Esiste uno scenario documentato in cui la giunzione tra dischi ha ridotto le prestazioni?

Sì, l' ARF ha riscontrato un problema come questo. Stava confrontando la cancellazione batch di piccoli file e quando l'operazione è stata condotta attraverso la giunzione, il fattore limitante non era più IO (come previsto) ma la CPU. Questo benchmark è stato anche discusso in dettaglio su GitHub .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.