Дефрагментация файловой системы Ext4 с помощью утилиты e4defrag
Различные операционные системы используют разные файловые системы. Например, GNU/Linux поддерживает большое количество файловых систем, но наиболее часто используется Ext4 (которая в будущем возможно будет заменена на Btrfs). И когда речь идет о файловых системах, первое, что приходит в голову — это фрагментация, которая оказывает прямое воздействие на производительность файловой системы.
Независимо от того, какую файловую систему вы используете, с течением времени неизбежно происходит фрагментация. И главная ее причина — сложности с поиском достаточно большого участка свободного пространства при записи данных на диск.
Если операционная система не может найти достаточно большой кусок свободного пространства, данные записываются отдельными блоками и оказываются распределенными по жесткому диску. В результате головке жесткого диска требуется больше времени для чтения данных, так как время тратится на перемещение ее к каждому блоку данных.
Некоторые источники утверждают, что файловым системам GNU/Linux, таким как Ext4, не требуется дефрагментация (в отличие от файловых систем для Windows), так как они спроектированы таким образом, что минимизируют фрагментацию данных.
Это, в некоторой степени, действительно так. Но есть эксперты, такие как Такаши Сато, экспериментально проверившие влияние фрагментации на производительность основных файловых систем GNU/Linux.
Он написал прекрасную статью под названием «ext4 online defragmentation» (последние ее версии можно найти здесь ), в которой можно найти следующие выводы:
«Было создано 50 фрагментированных файлов размером 1 Гб (в файловой системе ext4). Перед и после фрагментации замерялась скорость чтения данных. »
«. Замеры показали, что для одного файла размером 1 Гб дефрагментация может повысить производительность при чтении на 25%. После дефрагментации всех файлов скорость доступа к ним повысилась на 29%».
Такаши Сато и Акира Фуджита создали простую в использовании утилиту командной строки для дефрагментации файловой системы ext4. Она называется «e4defrag», и начиная с Ubuntu 12.04 LTS она предустанавливается в системе по умолчанию. Но необходимо помнить, что она работает только с файловой системой ext4″.
Использование e4defrag
Очень просто. Откройте терминал и введите следующую команду:
«location» может быть любым смонтированным устройством с файловой системой ext4 (включая корневую файловую систему), а также любой директорией или даже отдельным файлом внутри файловой системы ext4.
Получение отчета
Еще одна прекрасная функция e4defrag — возможность сканирования смонтированной файловой системы ext4 (директории или файла) с получением отчета, в котором указывается степень фрагментации. Основываясь на этом показателе, e4defrag выдаст вам рекомендации, требуется ли дефрагментация данной системы.
Замечание: если степень дефрагментации находится в диапазоне 0-30, дефрагментация не требуется. При степени фрагментации более 56% дефрагментация обязательна.
На скриншоте свежеустановленная операционная система, поэтому степень фрагментации равна нулю.
Сканирование запускается с помощью следующей команды:
Несколько примеров
Сканирование и дефрагментация своей домашней директории:
Сканирование и дефрагментация корневой файловой системы:
Замечание: в процессе дефрагментации выводятся сообщения, сообщающие о выполнении операций. Если вы там увидите сообщения с пометкой «Failure», не переживайте, это нормально, так как некоторые системные файлы невозможно переместить.
Не забывайте, что в GNU/Linux все ваши файлы смонтированы в корневой файловой системе («/»), поэтому если у вас смонтировано несколько файловых систем ext4, они также будут дефрагментированы, что, в зависимости от их размера и количества файлов, может занять достаточно продолжительное время.
Если у вас несколько разделов с файловой системой ext4, и вы хотите дефрагментировать их индивидуально, но не знаете имя устройства (/dev/sda. ), вы можете сделать это, воспользовавшись приведенными ниже инструкциями.
1. Введите приведенную ниже команду в терминале, чтобы получить список имеющихся разделов и их файловых систем.
2. Затем в выводе команды найдите поле «id». Разделы, у которых в этом поле стоит «83», имеют файловую систему ext4. Затем в этой же строке найдите столбец «Device», там вы увидите имя устройства. На приведенном ниже скриншоте у меня два таких устройства — «sda5» и «sda6».
3. Затем просто скопируйте имя устройства и вставьте его в приведенную ниже команду:
В зависимости от типа раздела (установлена или нет на нем операционная система), вам может понадобиться «sudo».
Если вас заинтересовала эта утилита и ее возможности, более подробную информацию можно получить, прочитав краткое руководство:
Источник
Ext3/4 – проверка, оптимизация, дефрагментация дисков в Linux
Дефрагментация в линукс нинужна!
Что-то давно не было срывов покровов с линукса, а между тем материала, о чём написать, накопилось много.
В этой статье я расскажу вам кое-что интересное о фрагментации файлов и работе с жёсткими дисками и разделами на них в линукс.
Если воспользоваться поиском на предмет – нужна ли дефрагментация в линукс, то тысячи линукс-икспертов ответят вам, что “нинужна”, однако, при этом не найдётся ответа на вопрос – Почему?
К чему это я про дефрагментацию?
Примерно год назад я стал замечать, что мой жёсткий диск, на котором в то время ещё была установлена openSUSE, стал судорожно поскрипывать при запуске файлов больших размеров, а что творилось при просмотре папок с картинкам, так вообще караул, падение производительности стало особенно заметным при запуске виртуальных машин или копировании больших архивов с диска на флешку – скорость падала ниже 1Мб/сек, при том, что с флешки копировалось со скоростью 4Мб/сек.
Т.к. я и так замечал, что линукс работает медленнее винды на моём ПК, я не придал первоначально внимания этому, но когда проигрыватели начали заикаться при проигрывании музыки и видео после одной из переустановок openSUSE, я понял, что что-то не так.
И опыт общения с виндой подсказывал, что это произошла фрагментация файлов.
Но как сделать дефрагментацию в линукс?
Т.к. специальных программ для дефрагментации в линукс нет, есть только скрипты и некая утилита, которая переписывает файлы, при этом у обеих этих способов стоит предупреждение, что это может привести к повреждению данных на жёстком диске, я даже не стал ими пользоваться.
Я поступил иначе – скинул с линуксового жёсткого диска все свои данные на другой жёсткий диск, отформатировал линуксовый жёсткий диск, установил на него линукс заново, а потом скинул свои файлы обратно на него и всё прошло.
И вот недавно из интереса я решил проверить каково состояние моих нынешних жёстких дисков с линуксом, на этот раз вместо openSUSE на них стоят мои сборки – на одном Jeder Linux Legacy SP3 (файловая система ext3), на втором Jeder Linux 10.10 (ext4). Первый диск используется для сборки и тестирования моих дистрибутивов, а второй находится в ноутбуке и ничего серьёзного там не делается.
Как проверить жёсткий диск в линукс?
А вот тут это оказывается не так-то просто, как в Windows, даже в 21 веке программисты самой лучшей ОС и файловых систем так до сих пор и не удосужились создать вменяемые утилиты для дефрагментации.
Ну что же, деваться некуда.
Чтобы проверить жёсткий диск и файловую систему в линукс, вам нужно загрузиться с LiveCD, т.к. примонтированную файловую систему проверить нельзя, а если обойти это ограничение, то такая проверка может привести к повреждению данных на жёстком диске.
Берём любой дистрибутив Jeder Linux, загружаемся в режиме LiveCD.
Открываете Терминал.
Меню ->Стандартные->Терминал
В терминале вводите команду:
sudo fsck -nvf /dev/ sda1 |
Вместо sda1 подставьте наименование раздела вашего жёсткого диска в ОС
Чтобы узнать наименование раздела жёсткого диска, откройте на вашем системном жёстком диске файл etc/fstab и там запомните наименование разделов вашего жёсткого диска.
Вот такие результаты мне выдала проверка жёсткого диска ноутбука:
180248 inodes used (1.18%) — количество и процент использованных инод 562 non-contiguous files (0.3%) – количество и процент фрагментированных файлов 142 non-contiguous directories (0.1%) — количество и процент фрагментированных папок # of inodes with ind/dind/tind blocks: 9963/201/0 3593985 blocks used (5.89%) — количество и процент использованных блоков 0 bad blocks — количество бэд-блоков 1 large file — количество больших файлов 143360 regular files — количество постоянных файлов Как видим, на моём жёстком диске фрагментация составила 0,3% от всех файлов и это при том, что всё, что делалось на ПК, это были скопированы две папки с флешки, а затем из них были сделаны образы с играми и программами для будущих дистрибутивов Jeder Linux. На втором жёстком диске, где я собираю системные образы Jeder Linux, фрагментация составляла уже 4,3%. К слову, на жёстком диске с Windows XP, забитом файлами и прочим мусором, где дефрагментация не делалась уже два года, тогда же была поставлена и винда, фрагментация составляет 7%. Однако, делать красноглазые выводы – вот, а в винде файловая система засирается больше – не получится, т.к. интенсивность использования дисков в обеих ОС у меня разная и в винде она больше, тем более, что на ноуте с Windows 7, который используется как игровая приставка и видеоплеер – поиграть в онлайн-игры, посмотреть кино, фрагментация составляет 0%. Итак, факт – фрагментация в линукс есть! Значит программы-дефрагментаторы ему нужны и чем чаще вы пользуетесь вашей системой, перемещаете файлы и прочее, тем больше фрагментация. Зачем делят диски в Linux? Т.к. вменяемых утилит для обслуживания диска в линукс нет, это сказывается и на принципах работы и установки системы на жёсткий диск. Именно! Это не из-за заботы о вас, повышения безопасности и прочего, а из-за того, что, когда вы начнёте использовать систему на полную, вы столкнётесь с фрагментацией и падением производительности файловой системы. Я ярый противник деления жёсткого диска на части, т.к. это приводит к ускорению износа поверхности диска и повышает риск повреждения данных при отключении электричества, потому я при установке openSUSE на отдельный раздел кидал только файл подкачки, а Jeder Linux 10.10 на моём ноутбуке вообще работает без файла подкачки – на одном разделе, который занимает весь жёсткий диск, поэтому я не первый раз сталкиваюсь с проблемой фрагментации данных в линукс и падением производительности системы от этого. Вынос по умолчанию файла подкачки и директории home на отдельные разделы затыкает проблему фрагментации данных в дистрибутиве, пусть не очень красиво, но порой очень эффективно, особенно если мы ничего не делаем на ПК, но с ростом количества и объёмов данных на жёстком диске – в первую очередь использование компьютера для бытовых целей, работе с мультимедийными данными, всё чаще сталкивается пользователь линукс с проблемой фрагментации. Хочется тут в духе красноглазика крикнуть – вот утверждают, что винда полна костылей – но извиняйте – деление на разделы, чтобы избежать фрагментации данных и потери производительности – это тогда вообще что? Оптимизация скорости работы файловой системы ext3/4 Но вопрос дефрагментации в линукс не единственный из-за кого производительность системы падает. Все дистрибутивы в линукс настроены так, чтобы работать с файловой системой в защищённом режиме, т.к. вопрос потери данных в линукс до сих пор не решён. Всего в линукс существует три режима работы с файловой системой и данными: Третий режим рекомендуют для ноутбуков, т.к. у них есть аккумулятор, а значит проблема отключения питания для них не шибко страшна, также этот режим рекомендуют для экономии энергии и если у вас SSD диск в системе (SSD имеют ограниченное количество циклов записи/перезаписи), т.к. количество операций записи/перезаписи уменьшается, а значит уменьшается износ диска и потребление электроэнергии. По моим наблюдениям также этот режим снижает потребление оперативной памяти в системе на 5-10Мб, ускоряет загрузку и завершение работы ОС. Чтобы переключить вашу файловую систему в один из трёх режимов, загрузитесь с LiveCD вашего дистрибутива, откройте терминал. В терминале введите: 1. Журналируемый режим:
2. Журналирование по требованию:
3. Режим обратной записи:
Вместо sda1 подставьте наименование раздела вашего жёсткого диска в ОС Также может повысить производительность вашей файловой системы индексация содержимого папок. В терминале для включения режима индексации для новых папок на диске введите команду:
А для включения индексации для уже существующих папок введите:
Как я уже написал, на большом ПК у меня на отдельном диске только файл подкачки и сейчас на нём 4,3% фрагментированных данных. А как у вас дела с фрагментацией и перевели ли вы вашу файловую систему в более быстрый режим работы? Я сильно “плаваю” в этом вопросе. Несколько лет назад я ходил на курсы по настройке операционных систем и обслуживанию ПК. Там советовали разбивать диск на разделы – под систему, под документы,под музыку и видео, под архив и т.д. И долгое время у меня было три раздела. Я так понимаю, что если это вредно, то вредно в любой системе… В том числе WinXP.У меня диск на 100 ГБ (ну фактически меньше).На эту тему довольно противоречивые мнения.С одной стороны, на больших дисках дефрагментация может происходить долго, а с другой – когда мало места на каком-то разделе, то быстрее растёт фрагментация. Тёмный лес. Пробую работать с одним большим диском C. Надоело следить за тем, сколько места на каком разделе осталось и распределять по разделам информацию. Вместо, казалось бы, порядка получалась неразбериха – даже дублировались одни и те же файлы на разных разделах. Единственное очевидное удобство разбиения – можно создавать архив системного диска каким-нибудь “Акронисом”, и восстанавливать в случае чего.
Очень лознавательно,-вопрос на который не мог найти на Линуксячих ресурсах!Ждём новую статью с нетерпением!Благодарю! Статья очень интересная. Спасибо. Сам столкнулся с данной проблемой буквально на днях. Читал, еще когда перебирался с Win XP на Linux, что дефрагментацию дисков в Linux устранить невозможно. Думал, что появилось за это время чего, стал искать и “попал” сюда.
Убунту стоит уже год постоянно обновляется и используется активно, раздел хомы постоянно подвержен перезаписи файлов, а не тупо для хранения, при чем заполнен почти всегда полностью в итоге имеется дефраг: корень 0.1% хома 0.6% Скажите что я делаю не так почему у меня такой маленький дефраг, что мне надо сделать что бы увидить хотябы ваши 4.3%
К сведению автора статьи: Разработчики Windows 7 включили дефрагментацию дисков в планировщик и она проходит по расписанию.
Бред сивой кобылы.
Совет: Чаще заглядывай на опеннет.
“для чего же тогда делят диски в линукс” Уважаемый jeder обязательно отвечу. Пока нет времени.
времени нет? Тяжелый ты человек.
вы в этой статье дали мне ответ на давно мучивший меня вопрос-чего это авторазбивщик в линуксе делает несколько разделов?для чего это нужно?теперь я знаю ответ!вообще то я сам дефрагментацию на виндовс делаю в среднем раз в месяц.надо будет поискать подобные ответы на мак ос.кстати интересно ваш сайт отображается на сафари в хакинтоше-сейчас смотрю именно этим браузером.жаль только что в мак ос настройки клавиатуры немного иные чем на виндовс
Дефрагментацию на Windows надо делать тогда, когда замечаете, что видео начинает запинаться или аудио, или папки с большим количеством файлов долго прорисовывают своё содержимое. В остальных случаях, даже самых тяжёлых, когда файлы записываются и удаляются с жёсткого гигабайтами в месяц, дефрагментацию надо делать не чаще одного раза в 6-7 месяцев. Несколько разделов под систему делается по нескольким причинам: повышение безопасности, повышение надёжности, повышение быстродействия. Такая разбивка на разделы обычно называется серверной, но может пригодиться десктопщикам
Речь в статье рекомой – о настройке файловых систем под линукс. Я угадал?))
На винде у меня умирала система не раз и дохли файловые системы и один жёсткий сдох – настоящее разрушение поверхности блина. На другом – были постоянные софтбэды – приходилось чинить викторией время от времени. Сейчас этот диск под линуксом – с тех пор ни одного сбоя. Восстановление? Я в нём наловчился из-за винды. Под линуксом мне восстановление ещё ни разу не понадобилось и вряд ли понадобится. На крайний случай есть dd и dd_rescue и testdisk.
Я не смог пройти мимо такого. Первое что бросилось в глаза, автор никогда не восстанавливал данные с дисков скорее всего только теория и то извращённая. Линукс пишет данные как попало при этом восстанавливать данные тяжелей это связано именно с тем что данные находятся в разнобой это связано с тем что дефрагментацияю на нём настраивать сложнее да и мало кто это делает это же линукс у него ничего не ломается.
не знаю нужна ли дефрагментация на линуксе но к примеру в мак ос эта программа есть и ею пользуются(сам тоже иногда пользую)так же как и на виндовс.Но если человек считает что ему это не нужно-не стоит его ни убеждать ни навязывать ему что то иное.Хотя в своих поисках я нашел что на линуксе тоже ведутся разработки дефрагментатора и даже есть один в репозитариях.Отсюда я все таки думаю что Jeder все таки прав и в линуксе тоже есть необходимость в данной программе может быть в меньшей мере но все таки.Может линукс и лучше пишет на жесткий свои файлы и им считай и не нужна дефрагментация но есть закачки и торренты и там бывают накладки с закачкой(ошибки)и тогда я думаю рано или поздно даже линуксу нужна будет эта процедура-может через полгода может через 2 года но понадобится.Убунта кстати последние версии все таки обзавелась дефрагментатором а это об чем то да значит-там он в скрытой папке но есть в наличии
ОБМ!
Я сказал – “под виндой”, и подозрения у меня были на борьбу вирусов с антивирусами), впрочем, мною и инициированную – так что в какой-то мере – я сам их гробил.))
Ну я свою тольку добавлю, дефрагментация требуется не ОС а железу и исходя из этой логики дефрагментация нужна там где на железяку производиться запись, давным давно году в 95 когда я пошёл в школу, а мой старший брат учился на 3 курсе университета, он постоянно давал читать мне книги по типу Windows 95 или windows 3.11,(Линуксовых просто не было на русском) дак вот там были встроены системы дефрагментации, и в досе они тоже были, да что там и в юниксе тоже были средства дефрагментации. Так вот к чему я вёл в этих книгах был отдельный раздел по дефрагментации и был там как правильно подготовить диск к установке, цитата “первыми на диск нужно записать те файлы которые будут храниться дольше”, и это позаимствовано у Юникс систем. Исходя из этого мы приходим к тому, что дефрагментация у нас требуется вне зависимость от используемой ОСи или файловой системы, а от загруженности жёсткого чем больше файлов перезаписывается на жёсткий тем чаще дефрагментация.
Я просто процитировал то, что было написано в книге, этот раздел идёт после установки ОС, очень интересная книга даже просто для сравнения того, что было тогда инновационным и, что сейчас и как прогрессировала система, там даже были отсылки к Юниксу было указано что позаимствовано, у той или иной системы.
Jeder, почему вы постоянно пытаетесь перейти на личности или оскорбить?
– частенько я не мог понять почему винда делает это и именно этим способом.
В начале 90х было мало технической документации с официально одобренными переводами, поэтому я не удивлюсь, если даже там и грамматические ошибки есть.
Jeder вы как всегда правы-там именно крипт перезаписывающий файлы с места на место.Но есть и дефрагментатор-недоделанная и косячная разработка которая еле дышит выпустив какой то непонятный дефрагментатор неспособный похоже даже нормально работать.Я беседовал с некоторыми людьми неплохо разбирающимися в линуксе и они прямо говорили что все таки дефрагментатор необходим-им приходится идти на всякие ухищрения для работы на линуксе после примерно полугода юзания линукса.Самый простой способ-перенос папок на другой диск или раздел и последующее форматирование освобожденного места с последующим возвратом папок и файлов на прежний раздел.Хотя я не специалист но думаю это временная мера и надолго ее вряд ли хватит.Опровергните или дайте подтверждение моим размышлениям
Можно бесконечно долго обсуждать плюсы и минусы EXT, но огромная просьба – не забывайте включать в свои будущие дистрибутивы поддержку JFS. http://www.vleu.net/shake/ единственная, которую нашел, рабочая утилита дефрагментации под линух. может кому и сгодится. )
Возможно, я не там искал но пока ничего работающего под Linux для вытягивания файлов не нашел (Testdisk Gparted не дали результата на реальных убитых блоках – они их даже не заметили (после восстановления пришлось отрезать часть диска) – JFS разделы еще умудрялись там как-то выживать, но вечного нет ничего).
Спасибо за совет.
Вообще что написано уже неактуально.
Приветствую!
Где-то попадалось, что разработчики Unix ввели такое разбиение на разделы из-за форс-мажорных костылей: сначала сохраняли свои программы в bin, когда место кончилось, подключили новый диск как /sbin, следующий – /usr/bin и т.д. Когда система стала распространяться, а дисковое пространство выросло, эти разделы просто оставили как есть.
Да это ты погнал. Разделение на разделы — вещь крутая.
Источник |