Это старая версия документа.
Ext4 — журналируемая файловая система, используемая по умолчанию в Ubuntu, начиная с версии 9.10. При создании ФС до 1,8% объёма может быть зарезервировано под служебные нужды, в дальнейшем размер этих данных увеличиваться не будет. Как и в других ФС, используемых в Linux, регистр в именах файлов имеет значение, то есть «Документ.txt» и «документ.txt» — это разные файлы, и они без проблем могут находиться в одной директории.
Дефрагментация
ФС в Linux изначально спроектированы так, чтобы файлы фрагментировались как можно меньше. Тем не менее, фрагментированность файлов имеет место быть, и в некоторых случаях может привести к заметному падению производительности дисковой подсистемы.
Вопреки расхожему мнению, дефрагментатор для Ext4 есть, и не один.
- Defrag. Дефрагментатор от Кона Коливаса. Случаются перерывы в разработке, но проект живой, в 2010 появился PPA-репозиторий:
ppa:e2defrag/ppa
. - Shake. Онлайн-дефрагментатор, PPA-репозиторий:
ppa:un-brice/ppa
.
e2fsprogs
Скачаем из git и соберём:
sudo aptitude install git cd /usr/src sudo git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git cd e2fsprogs sudo ./configure sudo make
запускаем дефрагментацию:
cd misc sudo ./e4defrag /dev/<xxx>
где <xxx> - имя раздела, например, sda4
проверяем последнюю строчку вывода (должно быть ⩽0.3% non-contiguous):
sudo fsck -n /dev/sda4
Оптимизация дискового пространства
Как вы уже заметили, на свежесозданном разделе с ext4 обычно выделяется меньше свободного дискового пространства и это становится заметным при копировании больших объемов информации. Почему это происходит? По умолчанию резервируется 5% от объема раздела при создании файловой системы на нем. Это необходимо для уменьшения фрагментации, для ведения журналирования а также некоторый объем откладывается для нужд учетной записи суперпользователя (root) и системных служб (daemons). Обычно это справедливо для системного корневого раздела, но на пользовательских разделах это не всегда приемлемо, особенно на разделах небольшого размера, например 120 ГБ; где может сказаться банальная нехватка свободного места.
Давайте исправим положение.
Уменьшим процент зарезервированных блоков для нужд суперпользователя. По умолчанию резервируется 5% от объема раздела или диска: Значение 0 отключает резервирование блоков, значение 5 - устанавливает резервирование на 5%.
sudo tune2fs -m 1
Установим процент зарезервированных блоков, например 1%. Значение 0 отключает резервирование блоков, значение 5 - устанавливает резервирование на 5%.
sudo tune2fs -r 1
Ссылки
- дефрагментация ext4 — статья на форуме
- Outline of Ext4 File System & Ext4 Online Defragmentation Foresight (англ., pdf) — презентация от Akira Fujita
- All about ureadahead - Ubuntu Forums — Scott James Remnant о нужности дефрагментации.
- git.kernel.org — коммит в ядро, добавляющий поддержку дефрагментации Ext4.