13

Может ли точка соединения NTFS между жесткими дисками вызвать узкое место? Или соединение будет кешироваться в памяти?

В частности, я хочу установить Steam на магнитный жесткий диск. Это означает, что все игры будут установлены там. Чтобы извлечь выгоду из моего SSD, я соединю игры, в которые я активно играю, из каталога Steam на жестком диске в SSD.

Мне было интересно, если это приведет к снижению производительности. Каждый раз, когда игра обращается к файлу, нужно ли ей читать HDD, читать точку соединения, определять новый путь на SSD, а затем получать истинный файл? Или это ОС кеширует это перенаправление, так что снижение производительности происходит только в первый раз?

Спасибо!

1 ответ1

5

Скорее всего нет, это не будет узким местом. С переходами NTFS связаны некоторые издержки, но в вашем сценарии они должны быть незначительными.

Вы можете избавиться от накладных расходов, физически перенеся данные на SSD и вообще не используя переходы (что, по-видимому, является основной проблемой для вашего вопроса), но я сомневаюсь, что вы могли бы измерить разницу.

Где хранятся и кэшируются соединения?

Соединения - это тип точек повторной обработки, которые хранятся в метафайле $Extend\$Reparse (другой более известный метафайл - $MFT).

Когда с файлом или каталогом связана точка повторной обработки, NTFS создает атрибут с именем $Reparse для точки повторной обработки. Этот атрибут хранит код повторной обработки и данные. Чтобы NTFS могла легко найти все точки повторной обработки на томе, в файле метаданных с именем \$Extend\$Reparse хранятся записи, которые соединяют файл точек повторной обработки и номера записей каталога MFT с соответствующими кодами точек повторной обработки. NTFS сортирует записи по номеру записи MFT в индексе $R

Источник: Inside Win2K NTFS, часть 1, Марк Руссинович

Диаграмма повторной обработки

Процесс повторной обработки

Источник: Inside Win2K NTFS, часть 1, Марк Руссинович

Были комментарии, что соединения хранятся в MFT и что MFT кэшируется. Что ж, теперь, когда мы знаем, где хранятся соединения, мне понадобится надежный источник для поддержки утверждения о кешировании; который я не смог найти.

Так что я не знаю, но я не думаю, что это имеет значение.

Есть ли документированный сценарий, когда кросс-дисковый переход снижает производительность?

Да, ARF столкнулся с такой проблемой. Он тестировал пакетное удаление небольших файлов, и когда операция проводилась на перекрестке, ограничивающим фактором был уже не IO (как и ожидалось), а процессор. Этот тест также подробно обсуждался на GitHub.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .