Если вы пользователь Linux, то наверняка слышали, что дефрагментировать файловые системы Linux не нужно. Вы также заметите, что в дистрибутивах Linux нет утилит для дефрагментации диска. Но почему так?
Чтобы понять, почему файловые системы Linux не нуждаются в дефрагментации при обычном использовании - а системы Windows - нужны, - вам нужно понять, почему происходит фрагментация и как файловые системы Linux и Windows работают по-разному.
Что такое фрагментация
Многие пользователи Windows, даже неопытные, считают, что регулярная дефрагментация файловых систем ускорит их работу. Многие люди не знают, почему это так.
Короче говоря, на жестком диске есть несколько секторов, каждый из которых может содержать небольшой фрагмент данных. Файлы, особенно большие, должны храниться в нескольких различных секторах. Допустим, вы сохраняете в файловой системе несколько разных файлов. Каждый из этих файлов будет храниться в непрерывном кластере секторов. Позже вы обновите один из изначально сохраненных файлов, увеличив размер файла. Файловая система попытается сохранить новые части файла рядом с исходными частями. К сожалению, если места для непрерывной работы недостаточно, файл приходится разбивать на несколько частей - все это происходит прозрачно для вас. Когда ваш жесткий диск читает файл, его головы должны перемещаться между разными физическими местоположениями на жестком диске, чтобы прочитать каждый фрагмент секторов - это замедляет работу.
Дефрагментация - это интенсивный процесс, который перемещает биты файлов, чтобы уменьшить фрагментацию, обеспечивая непрерывность каждого файла на диске.
Конечно, это отличается от твердотельных накопителей, у которых нет движущихся частей, и их не следует дефрагментировать - дефрагментация SSD фактически сокращает его срок службы. А в последних версиях Windows вам не нужно беспокоиться о дефрагментации файловых систем - Windows делает это автоматически. Дополнительные сведения о передовых методах дефрагментации см. В этой статье:
Объяснение HTG: действительно ли вам нужно дефрагментировать компьютер?
Как работают файловые системы Windows
Старая файловая система Microsoft FAT, которая в последний раз использовалась по умолчанию в Windows 98 и ME, хотя до сих пор используется на USB-флеш-накопителях, не пытается организовать файлы разумно. Когда вы сохраняете файл в файловой системе FAT, он сохраняет его как можно ближе к началу диска. Когда вы сохраняете второй файл, он сохраняет его сразу после первого файла - и так далее. Когда исходные файлы увеличиваются в размере, они всегда становятся фрагментированными. Им негде расти.
Новая файловая система Microsoft NTFS, которая появилась на потребительских ПК с Windows XP и 2000, пытается быть немного умнее. Он выделяет больше «буферного» свободного пространства вокруг файлов на диске, хотя, как любой пользователь Windows может сказать вам, файловые системы NTFS со временем все равно становятся фрагментированными.
Из-за особенностей работы этих файловых систем их необходимо дефрагментировать, чтобы обеспечить максимальную производительность. Microsoft решила эту проблему, запустив процесс дефрагментации в фоновом режиме в последних версиях Windows.
Как работают файловые системы Linux
Файловые системы Linux ext2, ext3 и ext4 - ext4 - файловая система, используемая Ubuntu и большинством других текущих дистрибутивов Linux - распределяет файлы более интеллектуальным способом. Вместо того, чтобы размещать несколько файлов рядом друг с другом на жестком диске, файловые системы Linux разбрасывают разные файлы по всему диску, оставляя между ними большое количество свободного места. Когда файл редактируется и ему необходимо увеличить размер, обычно остается достаточно свободного места для этого файла. Если фрагментация все же происходит, файловая система будет пытаться переместить файлы, чтобы уменьшить фрагментацию при нормальном использовании, без необходимости использования утилиты дефрагментации.
Из-за того, как работает этот подход, вы начнете видеть фрагментацию, если ваша файловая система заполнится. Если он заполнен на 95% (или даже 80%), вы заметите некоторую фрагментацию. Однако файловая система разработана таким образом, чтобы избежать фрагментации при нормальном использовании.
Если у вас действительно есть проблемы с фрагментацией в Linux, вам, вероятно, понадобится жесткий диск большего размера. Если вам действительно нужно дефрагментировать файловую систему, самый простой способ, вероятно, самый надежный: скопировать все файлы из раздела, стереть файлы из раздела, а затем скопировать файлы обратно в раздел. Файловая система разумно распределяет файлы по мере их копирования на диск.
Вы можете измерить фрагментацию файловой системы Linux с помощью команда fsck - ищите в выводе «несмежные inodes».