Способствует ли запись нескольких файлов одновременно в раздел жесткого диска фрагментации? Будут ли эти файлы записаны с чересстрочной разверткой на жестком диске?
Примеры:
- Загрузка нескольких файлов одновременно из Интернета
- Копирование файлов из разных источников в один и тот же раздел
- Скачивание нескольких торрентов
Различно ли это между различными ОС? Является ли выделение пространства априори для всего файла специфической особенностью приложения?
partitioning
performance
defragment
Джонатан
источник
источник
Ответы:
Это во многом зависит от используемой файловой системы, в некоторой степени от операционной системы, а также от программы, открывающей файл. Приложение может запросить правильный объем хранилища при создании нового файла, и именно функции операционной системы и файловой системы влияют на поведение при открытии и расширении, которому следуют эти приложения, когда они не знают, сколько места просить.
Если программа запрашивает у операционной системы файл размером 4,2 ГБ, ОС найдет большой объем свободного пространства, в котором свободно 4,2 ГБ. В противном случае программа выдаст достаточно фрагментов свободного пространства для сохранения файла. Здесь есть некоторые переменные, это упрощено.
Если программа запрашивает у операционной системы файл размером 4 КБ, ОС выдаст его. Если программа продолжает запрашивать новые непрерывные сегменты 4 КБ (вы загружаете файл, и программа не знала, насколько он велик), пока не получит 4,2 ГБ пространства, ОС с радостью предоставит пространство. Это тот случай, когда файловая система и ОС делают различия.
Например, XFS основана на экстентах, поэтому добавленное пространство будет смежным, пока его не будет. Кроме того, XFS можно настроить для предварительного выделения новых файлов с определенным объемом пространства, что может дополнительно минимизировать фрагментацию (полезно для томов хранения виртуальной машины, а также томов DVD ISO).
EXT2 / 3, NTFS и, как я полагаю, Рейзер будут распределять непрерывно, пока не смогут. Тогда начнутся новые фрагменты. Каждый фрагмент может быть размером 4 КБ.
Давайте возьмем наихудший случай. Два параллельных файла размером 4,2 ГБ сохраняются по 4 КБ одновременно в одном каталоге. «Один и тот же каталог» является частью наихудшего случая, поскольку некоторые комбинации OS / FS пытаются держать файлы в одном каталоге рядом друг с другом. Для некоторых комбинаций OS / FS это приведет к полному чередованию двух файлов на диске. Для других, которые пытаются сохранить новые открытые файлы на разных свободных сегментах, фрагментации может не быть совсем или очень мало.
Немного о XFS (я думаю, что ext4 и btrfs тоже могут это сделать). В этом случае чередование не будет 4 КБ, оно будет таким, каким вы установили значение размера размещения при монтировании тома. Установите 256 МБ, и вы получите файл размером 4,2 ГБ с 17 фрагментами вместо миллиона. Полезно для томов, хранящих большие файлы, такие как медиа-серверы. Бесполезно для томов, хранящих много маленьких и маленьких файлов.
Именно по этой причине клиенты Bittorrent либо открывают разреженные файлы при запуске новой загрузки, либо просто выделяют указанный размер перед началом.
При копировании файлов из разных частей одного и того же раздела (или, черт возьми, даже из других разделов) процесс копирования теоретически знает, насколько велики копируемые файлы, поэтому с самого начала запрашивает пространство соответствующего размера у ОС; нет необходимости добавлять выделения для новых файлов.
источник