Ответы:
Современные файловые системы, особенно те, которые разработаны, чтобы быть эффективными в многопользовательских и / или многозадачных случаях использования, делают хорошую работу, не фрагментируя данные, пока файловые системы не становятся почти полными (нет точной цифры для того, где "близко к полному"). «это так, как это зависит от размера файловой системы, распределения размеров файлов и ваших шаблонов доступа - обычно приводятся цифры от 85% до 95%), или от того, что шаблон создания и записи файлов необычен, или файловая система очень старый, поэтому видел много "действий". Сюда входят ext2 / 3/4, reiser, btrfs, NTFS, ZFS и другие.
В настоящее время не существует способа дефрагментации ext3 или 4 на уровне ядра / файловой системы (см. Http://en.wikipedia.org/wiki/Ext3#Defragmentation для получения дополнительной информации), хотя ext4 планируется в ближайшее время получить онлайн дефрагментация.
Существуют инструменты пользовательской земли (такие как http://vleu.net/shake/и другие, перечисленные в этой статье в Википедии), которые пытаются дефрагментировать отдельные файлы или наборы файлов, копируя / переписывая их - если имеется достаточно большой блок свободного пространства, это обычно приводит к тому, что файлу предоставляется непрерывный блок. Это никоим образом не гарантирует, что файлы находятся рядом друг с другом, хотя, если вы запустите Shake над парой больших файлов, вы обнаружите, что это приводит к тому, что два файла дефрагментируются сами по себе, но не где-то рядом друг с другом на диске. В многопользовательской файловой системе расположение файлов друг к другу не так часто (это, безусловно, менее важно, чем фрагментация самих файлов), так как головки дисков переворачиваются повсюду, чтобы обслуживать разных пользователей.
Если у вас есть файловая система, которая со временем сильно фрагментировалась и в настоящее время имеет достаточно свободного места, то выполнение чего-то похожего shake
на все ее файлы может иметь тот эффект, который вы ищете. Другой метод - скопировать все данные в новую файловую систему, удалить оригинал, а затем снова скопировать его. Это помогает во многом таким же образом shake
, но может быть быстрее для больших объемов данных.
Для небольших фрагментов, просто не беспокойтесь об этом. Я знаю людей, которые проводят больше времени, наблюдая за индикаторами выполнения дефрагментации, чем когда-либо экономят (из-за более эффективного доступа к диску) в течение нескольких жизней нормальной работы!
ureadahead
, как последние сборки Ubuntu по умолчанию (см. Ubuntuforums.org/showthread.php?t=1434502 для получения дополнительной информации), чтобы добиться аналогичного эффекта. Некоторая задержка в последовательности загрузки Linux может быть уменьшена, если попросить его запускать службы по мере возможности, если это поддерживается загрузочной установкой вашего диска (установите CONCURRENCY = shell в / etc / defaults / rc в Debian) и аналогичные настройки. Чтобы проверить, вносите ли вы какие-либо изменения в изменения, которые вы вносите, используйте bootchart.org, чтобы показать, что происходит перед тем, как что-то настроить, по сравнению с последующим.
e2defrag
и экспериментировал с ним, чтобы добиться такой упаковки. Вы можете найти его на launchpad.net/e2defrag .
/etc/defaults/rc
но есть /etc/default/rcS
на Debian 6
e2defrag
теперь лучше поддерживает Ext3, лучше чем shake
?