Команды дефрагментации в linux

How to defrag an ext4 filesystem

Yes, finally, a Q&A that actually targets «HOW» and not «why not». Lot of people have to operate on disks near to max capacity without an ability to upgrade the capacity.

6 Answers 6

Use e4defrag to defrag your files

If your ext4 file system is created with the extent option (it’s default in recent distros), you can use the e4defrag utility to check and defragment it online i.e. without umounting.

Just check fragmentation level with something like this (you need to be root to see details):

sudo e4defrag -c /path/to/myfiles 

Here’s an example of the output you can get:

$ sudo e4defrag -c iso/ now/best size/ext 1. /home/gerlos/iso/debian-live-7.5.0-i386-rescue.iso 7/1 111177 KB 2. /home/gerlos/iso/systemrescuecd-x86-4.4.1.iso 4/1 100897 KB 3. /home/gerlos/iso/debian-live-7.5.0-amd64-rescue.iso 6/1 116053 KB 4. /home/gerlos/iso/ubuntu-14.04.2-server-amd64.iso 8/1 76160 KB 5. /home/gerlos/iso/ubuntu-14.10-desktop-amd64.iso 15/1 75712 KB Total/best extents 40/5 Average size per extent 90577 KB Fragmentation score 0 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag] This directory (iso/) does not need defragmentation. Done. 

As in this example, most of the time it will tell you that no defragmentation is needed, but if you want to do it anyway you can use (you don’t need to use sudo to defrag your own files):

Your users can even run it on their own files, there’s no need to be root unless you want to work on other user’s or system files.

e4defrag is in the e2fsprogs package, and I guess it’s already installed on your Ubuntu system.

Источник

Дефрагментация в Linux

При использовании носителей информации неизбежно возникает фрагментация данных — разбиение файлов на блоки, которые записываются в разных областях носителя. Поговорим о том, как исправить излишнюю фрагментацию данных в Linux.

Первым делом нужно сказать, что процедуру дефрагментации рекомендуется проводить только для жёстких дисков. Flash-накопители и SSD используют метод прямого доступа к памяти. Это значит, что время обращения к любой ячейке сравнительно мало, а её местонахождение становится не таким уж важным. Более того, поскольку количество циклов перезаписи у таких накопителей всё ещё меньше, чем у жёстких дисков, дефрагментация может наносить урон по продолжительности «жизни» накопителя. А вот позиционирующим головкам внутри жёстких дисков после дефрагментации приходится меньше перемещаться, что позитивно сказывается на времени обращения к файлам.

Читайте также:  Rainbow six siege для linux

В Linux-сообществе нет единодушной позиции относительно того, полезна или бесполезна процедура дефрагментации в Linux. Дело в том, что файловые системы ext2, ext3 и ext4 стараются равномерно «раскидывать» новые файлы по диску. Если файл увеличивается в объёме, файловая система использует всё свободное пространство вокруг него. Если фрагментация всё же происходит, то файловая система старается в фоновом режиме переносить файлы в те места, где их фрагменты могут быть объединены. Успех? Не совсем.

Вышеописанные процедуры хорошо работают с дисками, у которых сравнительно много незанятого пространства. Но когда количество свободного пространства уменьшается, фрагментация становится возможной.

Фрагментация жесткого диска

Для проведения дефрагментации в Linux можно использовать утилиты e2defrag и e4defrag (для ext2 и ext4 соответственно). Утилита e2defrag может работать и с ext3, но только при условии временного преобразования файловой системы в ext2. Есть и другой способ — утилита Shake, которая может работать с разными файловыми системами.

Допустим, что нам нужно оценить, нуждается ли в дефрагментации раздел /dev/sda2. Это делается командой

Время выполнения команды зависит от того объёма информации, что предстоит проанализировать утилите. По окончании анализа вы увидите отчёт.

Дефрагментация в Linux

Если вы видите надпись «This device does not need defragmentation», то дефрагментация диску (разделу) не требуется.

Нужна ли дефрагментация можно также определить по значению Fragmentation score. Если оно лежит в диапазон от 0 до 30, то дефрагментация не требуется. Если значение представляет собой число от 31 до 55, то есть небольшие проблемы с фрагментацией файлов. При Fragmentation score от 56 и выше нужно провести процедуру дефрагментации.

Если вы хотите провести принудительную процедуру дефрагментации, воспользуйтесь командой

Естественно, если нужно произвести дефрагментацию другого раздела, то вместо /dev/sda2 следует указать нужное имя.

Дефрагментация в Linux

По итогам работы команды следует обратить внимание на показатель Fragmented percentage. Он показывает сколько было фрагментированных файлов и сколько стало. В нашем случае всё было хорошо и до дефрагментации, поэтому эта процедура толком ничего не изменила. Но бывают ситуации и похуже.

Читайте также:  Linux создание пользователя adduser

Теперь посмотрим на утилиту Shake. Это тоже весьма полезный дефрагментатор, который работает на основе эвристики и не требует внесения изменений в ядро или остановки работы системы. Суть работы утилиты Shake в том, что она просто перемещает файлы.

В целом, пользоваться утилитой очень просто — достаточно указать файл или каталог, который необходимо переместить.

Командой выше мы переместили файлы в каталоге /home/test.

Если необходимо только посмотреть, насколько сильно фрагментирован файл или каталог, нужно использовать опции —pretend —verbose —verbose или -pvv

Можно использовать и более сложные конструкции. Команда ниже проведёт дефрагментацию всех mp3-файлов в каталоге и рассортирует их.

find -iname '*.mp3' | sort | shake

Для более эффективной работы утилиты её автор рекомендует включать расширенные пользовательские атрибуты (user_xattr).

Shake нечасто встретишь в репозиториях. У программы есть страница на GitHub, а также PPA-репозиторий на Launchpad, но он не обновлялся уже пять лет. Так что, скорее всего, программу вам придётся устанавливать вручную. Более подробно о синтаксисе Shake вам подскажет справка, которую можно вызвать командой

Дефрагментация в Linux

Итак, фрагментация файлов в Linux имеет место быть. Она не является острой проблемой благодаря достоинствам файловых систем ext2, ext3 и ext4. Однако, если жёсткий диск или раздел забит файлами, рекомендуется периодически проводить проверку на наличие фрагментации. В этой статье, безусловно, описаны не все утилиты, что умеют проводить дефрагментацию в Linux. Здесь тот обязательный минимум, который пригодится любому пользователю Linux.

Источник

Дефрагментация диска Linux

Пользователи Windows знают, что для того, чтобы операционная система работала быстро надо время от времени дефрагментировать жесткий диск, на котором она установлена. Файловая система Ext4 в Linux не подвержена фрагментации. Однако при долгом использовании при определённых условиях незначительная фрагментация может всё же накапливаться.

В этой статье мы рассмотрим как выполняется дефрагментация диска в Linux на примере файловой системы Ext4. Я выбрал именно эту файловую систему, потому, что она самая популярная на данный момент.

Что такое фрагментация?

Первым делом надо понять что же такое фрагментация. Жесткий диск состоит из множества маленьких секторов, в каждом из которых хранится небольшая частичка данных. Если файл большой он разделяется на несколько секторов. Когда вы записываете файл в файловых системах FAT или NTFS, под него выделяется определённое количество секторов, а после него записываются уже следующие файлы, поэтому если вы захотите обновить файл и добавить в него информацию, то для этого уже будут использоваться секторы в другой части диска. Если таких операций будет много, то файл может оказаться раскиданным по всему диску и при чтении диску придется очень часто перемещать читающую головку, что замедлит производительность. Это и есть фрагментация.

Читайте также:  Аналог irfanview in linux

Но Ext4 большой фрагментации не подвержена, потому что файловая система выделяет много места после записанного файла и использует его. А даже если возникает фрагментация, то она пытается переместить файл в свободное место. Здесь фрагментация может возникнуть только если файловая система переполнена и то это возникает довольно редко.

Надо ещё отметить, что для SSD дисков дефрагментация не нужна. Там нет движущихся частей, а поэтому фрагментация не замедляет их работу, зато дефрагментация уменьшает срок службы.

Дефрагментация диска в Linux

Чтобы посмотреть какая сейчас фрагментация диска можно использовать утилиту fsck. Ей надо передать параметр -f. Чтобы в файловую систему не вносились никакие изменения используйте опцию -n:

Здесь /dev/sdb1 — это раздел, который надо проверить. Фрагментация указывается в скобках и измеряется в процентах, обычно она очень маленькая и не достигает даже одного процента.Не рекомендуется выполнять проверку на примонтированной системе, иначе вы получите кучу ложных ошибок, однако если с файловой системой не будут выполнятся никакие действия, то вы ничего не повредите. Для дефрагментации нам понадобится утилита e4defrag, находящаяся в папке e2fsprogs. Если у вас этот набор утилит ещё не установлен, установите его командой:

sudo apt install e2fsprogs

Теперь можете дефрагментировать нужный раздел. Например, тот же /dev/sdb1. Но перед дефрагментацией раздел надо примонтировать:

Затем дефрагментация Ext4:

После этого можно снова проверить фрагментацию. Если есть возможность, лучше отмонтировать перед этим раздел. Как видите, теперь фрагментация 0%:

Выводы

В этой статье мы рассмотрели как выполняется дефрагментация диска Linux с файловой системой Ext4. Всё очень просто. Только не надо дефрагментировать SSD диски, это только уменьшит срок их службы. А что вы думаете про дефрагментацию? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector