Почему Ubuntu активно использует жесткий диск сразу после запуска - Zhbert's Home Нажмите "Enter", чтобы перейти к контенту

Почему Ubuntu активно использует жесткий диск сразу после запуска

Не так давно после чистой установки Ubuntu на два ноутбука я обнаружил интересную закономерность — после запуска системы в течение какого-то довольно долгого времени система активно обращается к жесткому диску, что выражается в постоянном горении индикатора жесткого диска и ощутимом нагреве последнего (летом у нас на пятом этаже жара, поэтому железо при работе греется гораздо сильнее, чем в любое другое время).


Справка

Ubuntu -операционная система, основанная на Debian GNU/Linux. Основным разработчиком и спонсором является компания Canonical. В настоящее время проект активно развивается и поддерживается свободным сообществом

Индикатор жесткого диска — если кто не знал, при любой работе с внутренним хранилищем вашей машины факт обращения к последнему отражается в мигании специального светодиода на корпусе. Он есть как на полноценных десктопах, так и на ноутбука и прочей портативной технике. Иногда еще, смотря на этот светодиод, что-то знающие о нем люди говорят «компьютер думает!» (последнее не совсем верно с точки зрения работы ПК, но суть примерно отражает).


Я задумался, в чем может быть проблема, ведь это не Windows, где постоянно дерганье винчестера норма, это Linux, который в принципе может работать только из оперативной памяти и к диску обращаться очень редко.

Посмотреть активность диска можно при помощи специальной консольной утилиты iotop. Если в системе она у вас отсутствует, ее можно установить простой командой sudo apt install iotop. На скриншоте ниже пример вывода утилиты в терминале.

iotop terminal

Для запуска утилиты наберите в терминале команду sudo iotop, где sudo — для запуска утилиты от root пользователя, ну а iotop, он и в Африке iotop, как говорится.

После запуска утилиты перед нами предстанет состояние всех процессов, имеющих доступ к жесткому диску, отсортированных по убыванию скорости обращения к диску.

iotop

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

В списке процессов меня смутили два пункта (на скриншоте выше их уже нет, это просто для примера) — это демон snapd и процесс, название которого напоминало что-то вроде jbd2/sda0-4. Первое я сразу отмел, так как буквально через пару минут активность демона snap прекратилась, а вот второе продолжало грузить диск.

Итак, что это такое? Так как файловая система у меня была традиционно Ext4, то сразу стало понятно, что упомянутый выше процесс, это демон, отвечающий за работу с журналом файловой системы. Да, ext4 журналируемая ФС.


Справка

Ext4 (англ. fourth extended file system, ext4fs) — журналируемая файловая система, используемая в операционных системах с ядром Linux, созданная на базе ext3.

Журналируемая файловая система сохраняет список изменений, которые она будет проводить с файловой системой, перед фактическим их осуществлением. Эти записи хранятся в отдельной части файловой системы, называемой журналом (англ. journal) или логом (англ. log). Как только изменения файловой системы внесены в журнал, она применяет эти изменения к файлам или метаданным, а затем удаляет эти записи из журнала. Записи журнала организованы в наборы связанных изменений файловой системы.

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


Для решения этой проблемы нужно было просто указать ему, чтобы он занимался этим реже, чем было изначально. Для этого нужно выполнить несколько простых действий:

  • В каталоге /etc/pm/ создаем директорию power.d. Сделать это можно при помощи простой команды /etc/pm/power.d/. Так как каталог этот защищен для доступа простым пользователям, команды выполняются с привилегиями суперпользователя — root.
  • Создаем в созданном каталоге файл journal-commit
  • Редактируем созданный файл текстовым редактором: sudo nano /etc/pm/power.d/journal-commit
  • В него нужно дописать одну строчку: JOURNAL_COMMIT_TIME_AC=${JOURNAL_COMMIT_TIME_AC:-120} Важно! Не забудьте поставить в конце переход на следующю строку!
  • Нажимаем Ctrl+O для сохранения изменений, и Ctrl+X для выхода из nano.
nano config file

Перезагружаем машину. Все, после загрузки активность диска на минимальном уровне, проблема решена.

2 комментария

  1. Владимир Владимир 09.01.2021

    snapd первым делом нужно выкорчевывать из системы, заменив snap пакеты на нормальные (snap list)

    • Zhbert Zhbert Автор записи | 09.01.2021

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

Добавить комментарий

Ваш адрес email не будет опубликован.