Hacker News Digest

Тег: #tmpfs

Постов: 2

A deep dive into Debian 13 /tmp: What's new, and what to do if you don't like it (lowendbox.com)

Debian 13 «Trixie» переносит /tmp из диска в оперативную память (tmpfs).
Плюсы: быстрый доступ, автоматическая очистка при перезагрузке.
Минусы: теперь «забытые» файлы жрут ОЗУ; по умолчанию tmpfs ограничен 50 % RAM.

Как изменить лимит

sudo systemctl edit tmp.mount

Раскомментируйте блок [Mount] и поменяйте size=50% на нужное значение, например size=2G или size=75%. Сохраните, затем:

sudo systemctl daemon-reload
sudo systemctl restart tmp.mount

Как полностью отключить tmpfs-вариант

sudo systemctl mask tmp.mount
sudo reboot

После перезагрузки /tmp снова будет обычной директорией на диске.

Коротко

  • Нужна скорость и не жалко памяти — оставьте tmpfs.
  • Работаете с большими временными файлами — увеличьте лимит или отключите tmpfs.

by shaunpud • 29 августа 2025 г. в 02:39 • 118 points

ОригиналHN

#debian#tmpfs#ram#bash#systemctl#twitter

Комментарии (98)

  • Debian переносит /tmp в tmpfs (ОЗУ), что вызывает споры: кто-то ждёт прироста скорости, кто-то боится нехватки RAM и OOM-killer.
  • Критики указывают: tmpfs-файлы при нехватке памяти уйдут в swap, и чтение с диска станет медленнее, чем если бы файл сразу лежал на диске.
  • На серверах swap часто отключён из-за ECC и предсказуемости, поэтому tmpfs в /tmp воспринимается как риск.
  • Решение «просто используйте /var/tmp» звучит часто, но авто-очистка /tmp и /var/tmp (30 дней) может неожиданно удалить нужные данные.
  • На low-end и SD-картах (Raspberry Pi) tmpfs экономит циклы записи и может быть полезен, если выключен swap.
  • Отключить tmpfs для /tmp можно командой systemctl mask tmp.mount, что рекомендуют многие админы.

In-Memory Filesystems in Rust (andre.arko.net)

Разрабатывая CLI-утилиту, я хотел избежать тормозов при тестах из-за fstat, как это было в Bundler. Решил попробовать in-memory FS, как в Go-библиотеке Afero.

В Rust аналогов нет: спросишь — получишь лекцию «в Rust это не нужно». Нашёл два кандидата:

  • vfs — поддерживает swap-бэкендов, но без симлинков и прав, а главное — нельзя создавать исполняемые файлы.
  • rsfs — старый, почти заброшенный; требует параметризовать весь код типом rsfs::FS, превращая сигнатуры в кашу.

Провёл бенчмарк: vfs, rsfs, ramdisk и обычный SSD — всё показывает ~45 мс. Современные SSD + кеш ОС настолько быстры, что экономия на syscalls незаметна.

Вывод: тестируй прямо на файловой системе — проще и не медленнее.

by ingve • 24 августа 2025 г. в 06:33 • 109 points

ОригиналHN

#rust#in-memory-filesystem#vfs#rsfs#benchmarking#ssd#tmpfs#afero#go#filesystem

Комментарии (45)

  • Позикс-семантика сложна, поэтому самописная in-memory реализация почти всегда хуже по качеству, чем готовые tmpfs/ramfs.
  • Для быстрых тестов достаточно /tmp (часто tmpfs) или /dev/shm — это дёшево и использует проверенный ядром код.
  • SSD и кэши ОС настолько быстры, что даже обычное файловое I/O редко становится узким местом; CPU и syscalls чаще ограничивают.
  • Несколько участников пожелали стандартным traits для файловой системы, как в Go (fs.FS, afero), но признают, что в std Rust это уже трудно.
  • Основная цель обсуждаемого vfs-крейта — встраивать файлы в бинарь, а не мокать диск; об этом автор плохо сообщил в README.