Вопрос из обсуждения. Минимальный веб-сервер (Apache, PHP, база данных). Стоит ли добавить в fstab строку tmpfs /tmp tmpfs defaults,noatime 0 0, и не сломает ли это обновления? Опытный участник ответил, что годами держит /tmp в памяти без проблем.
Как включить правильно. На системах с systemd есть готовый юнит:
sudo systemctl enable --now tmp.mount # если юнит есть в /usr/share/systemd/tmp.mount, сначала cp в /etc/systemd/system/
или строка в fstab:
tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,size=1G,mode=1777 0 0
Обязательно mode=1777 (общедоступный каталог со sticky-битом) и разумный size= (по умолчанию половина памяти, что на сервере с 2 ГБ опасно). Debian 13 и новые Ubuntu переходят на /tmp в tmpfs по умолчанию, так что практика штатная.
Что это даёт. Меньше записи на диск (важно для SSD с малым ресурсом и для сетевых дисков виртуальных машин), автоматическая очистка при перезагрузке, скорость для программ, активно пишущих во временные файлы.
Что может пойти не так.
- Программы с большими временными файлами: дампы баз через
mysqldump, если приложение пишет во/tmp; распаковка архивов при обновлениях (aptиспользует/tmpредко, но некоторые установщики да); сборка контейнеров и пакетов; сортировка больших файлов (sort -T). Превышениеsize=даёт «No space left on device» при свободном диске. Лечение:size=больше, либо направить конкретную программу в другой каталог (TMPDIR=/var/tmp, у MySQLtmpdir=). /var/tmpдолжен оставаться на диске: по соглашению он сохраняется между перезагрузками.- Память, занятая файлами в
/tmp, недоступна приложениям; на машине с 1–2 ГБ это заметно. Мониторитьdf -h /tmpиfree -m. - Файлы в
/tmpисчезают при перезагрузке: то, что кто-то положил туда «на время» и забыл, пропадёт.
Проверка после включения. findmnt /tmp (тип tmpfs, размер), systemd-tmpfiles --cat-config | grep -E '^[DdQq] /tmp' (правила очистки: с tmpfs они не нужны, но не мешают), запуск типичных задач сервера (обновление, дамп, деплой) с наблюдением за df -h /tmp.
Вывод для виртуальных машин. Для сервера с 4 ГБ памяти и больше /tmp в tmpfs с size=1G разумно; для машин с 1–2 ГБ лучше оставить на диске или задать size=256M и следить за программами.
Юниты монтирования описаны в документации systemd.