На старом HDD часто лежит всё подряд: образы, архивы, рабочие файлы, «скачал на всякий случай». Пока папка не гигантская, жить можно. Открываешь её в Dolphin или Midnight Commander — и система уходит в раздумья, а диск тарахтит. NVMe ещё не завезли? Нормально. Ниже как я ускорил работу с «помойкой» на Ubuntu через vmtouch: без чёрной магии и без лишних трат.
Почему тормозит
Жёсткий диск медленнее SSD по определению. Особенно если в каталоге сотни гигабайт и тысячи файлов: файловый менеджер читает метаданные, тянет миниатюры, ходит по inode. Файловый кеш Linux помогает, но греет не всё и не всегда — то, чем пользуешься редко, в RAM не задерживается.
vmtouch: ручной прогрев кеша
vmtouch — утилита, которая позволяет явно «потрогать» файлы и затянуть их (или их части) в page cache. PCIe 4.0 не нужен: хватает apt, пары строк bash и свободной оперативки.
Установка:
sudo apt install vmtouch
На Ubuntu/Debian ставится без сюрпризов. Проверено на своей машине.
Что греть, а что не трогать
Весь диск в RAM не затянешь, если у тебя не сервер с сотнями гигабайт памяти. Разумный фильтр: только свежие файлы, например менявшиеся за последнюю неделю. В моём случае это как раз то, что качал, открывал и раздавал.
Рабочая однострочка:
find /mnt/data/Download -type f -mtime -7 -print0 | xargs -0 vmtouch -t
Логика простая:
- find выбирает файлы за последние 7 дней;
- vmtouch -t читает их в кеш;
- в файловом менеджере папка открывается заметно живее, «как с SSD» для свежего слоя.
Как проверить, что кеш прогрелся
Запусти без флага -t:
vmtouch /mnt/data/Download
Утилита покажет, сколько страниц уже resident в памяти. Не «магия ИИ», а честная статистика: Resident Pages — твой индикатор.
Автозапуск после reboot
Вручную каждый раз лень. Я вынес прогрев в скрипт и повесил на crontab:
- Скрипт
~/warmup_downloads.sh - Права:
chmod +x ~/warmup_downloads.sh - В
crontab -e:@reboot /home/slon/warmup_downloads.sh
После загрузки системы кеш прогревается сам, и папка открывается без лишней боли.
Если диск ещё не смонтирован
На этот случай в скрипте стоит проверка mountpoint:
if ! mountpoint -q /mnt/data; then echo "/mnt/data не смонтирован!" >> /home/slon/warmup_log.txt exit 1 fi
Лишних ошибок нет, лог под рукой. На случай, если ночью спросят: «Почему всё медленно?»
Зачем это было нужно
Чтобы не тратить нервы на ожидание. После vmtouch свежие файлы (образы, фото, документы) открываются за доли секунды. HDD не превращается в SSD, но перестаёт бесить в ежедневной работе: это архив, который ведёт себя предсказуемо.
Пара инженерных шуток:
— Почему DevOps пьёт кофе и пишет скрипты для кеша?
— Потому что его HDD не умеет в turbo boost.
— Как ускорить старый диск?
— Напугать vmtouch и пообещать заменить на SSD.
Лайфхаки напоследок
- Мало RAM — грей только нужные расширения, например
*.jpgи*.pdf - В лог пиши дату: будет видно, когда скрипт реально отработал
- Появится SSD или NVMe — vmtouch всё равно полезен для «горячего» слоя файлов
Вывод
vmtouch — практичный лайфхак для больших папок на HDD в Ubuntu. Не чудо, а инженерия: прогрел нужное в RAM — получил быстрый доступ. Больше оперативки — шире кеш — спокойнее жизнь. Проверь на своей «помойке» и сравни до/после.