Чи одночасно завантаження / копіювання файлів сприяє фрагментації?


10

Чи записує більше одного файлу одночасно на розділ жорсткого диска, сприяє фрагментації? Чи були б ці файли переплетеними на жорсткий диск?

Приклади:

  • Завантаження декількох файлів одночасно з Інтернету
  • Копіювання файлів з різних джерел на один і той же розділ
  • Завантаження декількох торрентів

Чи відрізняється це між різними ОС? Чи виділяє простір апріорі для всього файлу особливістю програми?


Приємне запитання. Я можу лише зазначити, що це залежить від точної реалізації драйвера файлової системи, яка вужча, ніж ОС.
whitequark

4
Це буде складною відповіддю ... Так, це специфічно для ОС та програми. Деякі програми виділяють простір, а деякі ні. Іноді немає можливості заздалегідь дізнатися, скільки потрібно виділеного місця, щоб цей тип додатків міг фрагментувати більше. Крім того, це буде специфічно для файлової системи (ви можете використовувати fat32 або NTFS у Windows)
Jarvin

Відповіді:


7

Це дуже залежить від використовуваної файлової системи, певною мірою операційної системи, а також програми, яка відкриває файл. Додаток вимагає запитувати правильний обсяг пам’яті під час створення нового файлу, і саме функції операційної системи та файлової системи впливають на поведінку відкритих і розширених цих програм, коли вони не знають, скільки місця попросити про.

Якщо програма попросить операційну систему отримати файл 4,2 ГБ, ОС знайде частину місця з 4.2 Гб безкоштовно. Якщо цього не буде, програма дасть достатньо фрагментів вільного простору для збереження файлу. Тут є деякі змінні, це спрощено.

Якщо програма запитує операційну систему для файлу 4 КБ, ОС видасть її. Якщо програма продовжує запитувати нові суміжні 4КБ сегменти (ви завантажуєте файл, і програма не знала, наскільки він великий), поки не отримає 4,2 ГБ місця, ОС з радістю дасть місце. Це той випадок, коли файлова система та ОС роблять різниці.

Наприклад, XFS заснований на масштабах, тому доданий простір буде суміжним, поки його не буде. Крім того, XFS може бути налаштований на попереднє виділення нових файлів з певним простором, що може додатково мінімізувати фрагментацію (корисно для обсягів зберігання віртуальної машини, а також томів DVD ISO DVD).

EXT2 / 3, NTFS, і я вважаю, Райзер виділить суміжні, поки не зможе більше. Тоді він розпочне нові фрагменти. Кожен фрагмент може бути розміром 4 КБ.

Давайте візьмемо найгірший випадок. Два паралельних 4,2 ГБ файли, які одночасно паралельно зберігаються по 4 КБ, в один і той же каталог. Справа "той самий каталог" є частиною найгіршого випадку, оскільки деякі комбінації ОС / FS намагаються зберігати файли в одному каталозі поруч. Для деяких комбінацій OS / FS це призведе до того, що два файли будуть повністю переплетені на диску. Для інших, які намагаються зберігати нові відкриті файли на різних вільних сегментах, може бути зовсім не фрагментація або дуже мало.

Трохи на XFS (я думаю, що ext4 та btrfs також можуть це зробити). У цьому випадку перемежування не буде 4 КБ, це буде все, що ви встановите для розміру свого розміру при розміщенні гучності. Встановіть його на 256 Мб, і ви отримаєте файл 4,2 ГБ із 17 фрагментами замість мільйона. Корисно для томів зберігання великих файлів, таких як медіа-сервери. Не корисно для томів, де зберігається багато файлів Itty bitty та декілька великих.

Саме через це клієнти Bittorrent або відкривають розріджені файли при запуску нової завантаження, або просто виділяють загальний розмір перед початком.

Під час копіювання файлів з різних частин одного і того ж розділу (або чортів, навіть з інших розділів) процес копіювання теоретично знає, наскільки великі скопійовані файли, тому з ОС вимагає місця відповідного розміру з самого початку; не потрібно додавати виділення для нових файлів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.