Оглавление

Все мы храним на каком-нибудь древнем харде гигабайты всего подряд — образы, киношки, архивы, файлы по работе. Вроде бы всё удобно, пока не открываешь эту папку в Dolphin или Midnight Commander, а система начинает «чё-то долго думать» и тарахтеть. NVMe всё ещё не завезли?
Не беда, расскажу, как сам ускорил свой старый HDD на Ubuntu, не прибегая к чёрной магии и без лишних трат.

Почему тормозит?

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

vmtouch — маленький чит для больших свалок

Вот тут на сцену выходит vmtouch — утилитка, которая позволяет прямо руками греть файловый кеш в Linux.
Кто бы мог подумать, что для счастья не нужен PCIe 4.0, а всего лишь пара строк в bash и немного RAM.

Установка — проще некуда:

sudo apt install vmtouch

Проверено на себе: работает на любой Ubuntu или Debian.

Самое важное — что греть?

Весь диск греть не надо (да и не получится, если у тебя не 128 ГБ оперативки). Поэтому делаем просто:
Греем только файлы, которые менялись за последнюю неделю.
В моём случае это всё, что я качал, открывал, раздавал.

Мой рабочий скрипт:

find /mnt/data/Download -type f -mtime -7 -print0 | xargs -0 vmtouch -t

Смысл простой:
— Сканим свежак
— Читаем его в RAM
— Открываем в файловом менеджере — и файлы летят, будто с SSD

Как понять, что кеш реально прогрелся?

Запусти:

vmtouch /mnt/data/Download

Там покажет, сколько файлов реально в памяти. Не «магия ИИ», а честная статистика: Resident Pages — твой друг.

Хочешь автоматизации? Без проблем!

Постоянно держать в голове запуск этого скрипта лениво. Поэтому сделал автозапуск через crontab:

  1. Написал скрипт ~/warmup_downloads.sh
  2. Сделал его исполняемым: chmod +x ~/warmup_downloads.sh
  3. Добавил строку в crontab (через crontab -e): @reboot /home/slon/warmup_downloads.sh

Вуаля! Теперь кеш греется при каждом запуске системы, и папка открывается почти как родная.

Как я сделал «помойку» на HDD быстрой с помощью vmtouch (Ubuntu, DevOps, немножко магии)

А вдруг диск не смонтировался?

На этот случай в скрипте стоит маленькая проверка:

if ! mountpoint -q /mnt/data; then
  echo "/mnt/data не смонтирован!" >> /home/slon/warmup_log.txt
  exit 1
fi

Так что никаких лишних ошибок, а лог всегда под рукой. На случай, если тебя ночью разбудят и спросят: «Почему всё медленно?!»

Как я сделал «помойку» на HDD быстрой с помощью vmtouch (Ubuntu, DevOps, немножко магии)

И зачем мне всё это было?

Честно? Чтобы не тратить нервы и время на вечное ожидание.
После внедрения vmtouch свежие файлы (те же образы, новые фото, документы) открываются за доли секунды.
Медленный HDD перестал быть болью — теперь это просто архив, который не раздражает.


Пара инженерных шуток:

— Почему DevOps пьёт кофе и пишет скрипты для кеша?
— Потому что его HDD не умеет в turbo boost.

— Как ускорить старый диск?
— Напугать его vmtouch и пообещать заменить на SSD.


Лайфхаки напоследок

  • Если мало RAM — грей только нужные расширения, например, только .jpg и .pdf
  • В лог добавь дату — будешь знать, когда скрипт реально отработал
  • Если вдруг появится SSD или NVMe, vmtouch пригодится и для него — магия работает на всех типах хранилищ!

Вывод

vmtouch — реальный лайфхак для ускорения работы с большими папками на HDD в Ubuntu.
Это не магия ИИ, а честная инженерия: больше RAM — больше кеша, больше счастья.
Проверь на практике — и забудь про вечные тормоза, даже если твой диск пережил динозавров.