Может ли точка соединения NTFS между жесткими дисками вызвать узкое место? Или соединение будет кэшироваться в памяти?
В частности, я хочу установить Steam на магнитный жесткий диск. Это означает, что все игры будут установлены там. Чтобы извлечь выгоду из моего SSD, я соединю игры, в которые я активно играю, из каталога Steam на жестком диске в SSD.
Мне было интересно, если это приведет к снижению производительности. Каждый раз, когда игра обращается к файлу, нужно ли ей читать HDD, читать точку соединения, определять новый путь на SSD, а затем получать истинный файл? Или это ОС кеширует это перенаправление, так что снижение производительности происходит только в первый раз?
Благодарность!
Ответы:
Скорее всего нет, это не будет узким местом. С переходами NTFS связаны некоторые издержки, но в вашем сценарии они должны быть незначительными.
Вы можете избавиться от накладных расходов, физически перенеся данные на SSD и вообще не используя переходы (что, по-видимому, является основной проблемой для вашего вопроса), но я сомневаюсь, что вы могли измерить разницу.
Где хранятся и кэшируются соединения?
Соединения - это тип точек повторного анализа, которые все хранятся в
$Extend\$Reparse
метафайле (другой более известный метафайл - это$MFT
).Источник: Inside Win2K NTFS, часть 1, Марк Руссинович
Диаграмма повторной обработки
Источник: Inside Win2K NTFS, часть 1, Марк Руссинович
Были комментарии, что соединения хранятся в MFT и что MFT кэшируется. Что ж, теперь, когда мы знаем, где хранятся соединения, мне потребуется надежный источник для поддержки утверждения о кешировании; который я не смог найти.
Так что я не знаю, но я не думаю, что это имеет значение.
Есть ли документированный сценарий, когда кросс-дисковый переход снижает производительность?
Да, ARF столкнулся с такой проблемой . Он тестировал пакетное удаление небольших файлов, и когда операция проводилась через соединение, ограничивающим фактором был уже не IO (как и ожидалось), а процессор. Этот тест также подробно обсуждался на GitHub .
источник