NTFS Junction Point do HDD para o SSD, isso causará gargalo de desempenho? (relocação de jogo de vapor)

13

Um ponto de junção NTFS entre os HDDs causa um gargalo? Ou será que a junção será armazenada na memória?

Especificamente, quero instalar o Steam em um disco rígido magnético. Isso significa que todos os jogos serão instalados lá. Para se beneficiar do meu SSD, vou apontar os jogos que estou jogando ativamente do diretório do Steam no HDD para o SSD.

Eu queria saber se isso causaria problemas de desempenho. Toda vez que o jogo acessa um arquivo, ele precisa ler o HDD, ler o ponto de junção, resolver o novo caminho no SSD e obter o arquivo verdadeiro? Ou será que o sistema operacional armazenará esse redirecionamento de modo que a penalidade de desempenho seja atingida somente na primeira vez?

Obrigado!

    
por ddtemplar 02.07.2014 / 10:01

1 resposta

5

Provavelmente não, não será um gargalo. Existe alguma sobrecarga associada às junções NTFS, mas no seu cenário deve ser insignificante.

Você poderia se livrar da sobrecarga movendo fisicamente os dados para o SSD e não usando junções (o que parece ser a preocupação central da sua pergunta para mim), mas duvido que você possa medir a diferença.

Onde as junções são armazenadas e armazenadas em cache?

As junções são do tipo pontos de nova análise que são armazenados em $Extend\$Reparse metarquivo (outro metarquivo mais famoso é o $MFT ).

When a file or directory has a reparse point associated with it, NTFS creates an attribute named $Reparse for the reparse point. This attribute stores the reparse code and data. So that NTFS can easily locate all reparse points on a volume, a metadata file named \$Extend\$Reparse stores entries that connect the reparse point file and directory MFT entry numbers to their associated reparse point codes. NTFS sorts the entries by MFT entry number in the $R index.

fonte: Inside Win2K NTFS, Parte 1 por Mark Russinovich

Diagrama de nova análise

fonte: Inside Win2K NTFS, Parte 1 por Mark Russinovich

Houve comentários de que as junções são armazenadas na MFT e que a MFT está armazenada em cache. Bem, agora, quando sabemos onde as junções são armazenadas, eu exigiria uma fonte confiável para suportar a declaração de armazenamento em cache; que eu não consegui encontrar.

Então, eu não sei, mas não acho que isso importe.

Existe um cenário documentado quando a junção entre os discos diminuiu o desempenho?

Sim, o ARF foi executado em problema como este. Ele estava comparando a exclusão em lote de arquivos pequenos e, quando a operação era realizada através da junção, o fator limitante não era mais IO (como esperado), mas a CPU. Este benchmark também foi discutido em detalhes no GitHub .

    
por 04.12.2015 / 14:40