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