При перезаписи файла, как это влияет на файловую систему NTFS?
Скажем, у меня есть дополнительный жесткий диск, который был дефрагментирован и оптимизирован, чтобы данные представляли собой аккуратный непрерывный блок без отсутствующих пробелов / кластеров. Как сплошная кирпичная стена.
Если я копирую файл с таким же именем и перезаписываю его на дополнительный диск, хранятся ли данные в одном и том же пространстве / кластере?
Что, если файл меньше, это создаст новый пробел в кластерах?
Что, если файл больше, будет ли часть данных заполнять кластер, а затем использовать его в конце свободного диска, делая его фрагментированным?
1 ответ
Скажем, у меня есть дополнительный жесткий диск, который был дефрагментирован и оптимизирован, чтобы данные представляли собой аккуратный непрерывный блок без отсутствующих пробелов / кластеров. Как сплошная кирпичная стена.
-> Представьте себе такую картинку для хранения файловой системы:
[(Data1)(data1)(data2)(data2)(данные3)(данные3)(Data4)(Data4)(данные 5)(data6)(пусто) (данных7)]
Каждый из элементов в (..) имеет размер блока, они могут быть блоками 4k, 8k, 16k, 32k, и т.д., в зависимости от ваших потребностей для хранения.
Если я копирую файл с таким же именем и перезаписываю его на дополнительный диск, хранятся ли данные в одном и том же пространстве / кластере?
-> Да, хотя вы действительно не знаете.
Это зависит от размера копируемого файла. Если файл был изменен, чтобы добавить больше данных в файл или удалить данные в файле, он может использовать больше блоков данных или меньше блоков данных. Для файла файловой системы 4k на блок, который использовался для хранения файла, этот файл должен занимать пространство в кластерах 4k. Если бы данные использовали только 5 КБ, для хранения файла потребовалось бы два кластера 4 КБ.
Что, если файл меньше, это создаст новый пробел в кластерах?
Если файл был меньше, этот пробел в действительности является просто неиспользуемым пространством данных в кластере, основываясь на ближайших блоках, необходимых для хранения нового файла.
Что, если файл больше, будет ли часть данных заполнять кластер, а затем использовать его в конце свободного диска, делая его фрагментированным?
-> Вообще-то да, хотя сегодня для файловых систем это проблемы, которые не так заметны.
Если у вас нет процесса чтения / записи непрерывно в блочной файловой системе... и для этого случая я просто создал бы ram-диск только для того, чтобы процесс работал.
Итак, я бы посоветовал вам сосредоточиться на многих других факторах, влияющих на производительность, таких как использование предварительной ссылки и предварительной загрузки... и изменение значения 'vm.swappiness = 10' в файле /etc/sysctl.conf, если у вас есть система debian,
Ура Рик:)