tmpfs в Arch Linux / Вечный .cache

Tmpfs — временное файловое хранилище во многих Unix-подобных ОС. Предназначена для монтирования файловой системы, но размещается в ОЗУ вместо физического диска.

Средство tmpfs позволяет создавать файловые системы, содержимое которых находится в виртуальной памяти. Поскольку файлы в таких файловых системах обычно находятся в ОЗУ, доступ к файлам осуществляется очень быстро.  Все данные являются временными, в том смысле, что ни одного файла не будет создано на жёстком диске. После перезагрузки все данные, содержащиеся в Tmpfs, будут утеряны. 

Цель использования — снизить износ постоянного хранилища. Это не особенно актуально для жёсткого диска или твердотельного диска — современные модели при любом типе домашнего использования переживут нас. Но это может быть актуально, если система установлена на карту памяти. Вы можете разместить в оперативную память приложение, которое постоянно использует хранилище (часто обращается к файлам или непрерывно сохраняет файлы), тем самым ускорится работа этого приложения, а также всей системы за счёт снижения нагрузки на карту памяти. 

Ещё одна возможная причина использования — незаметность, при работе в tmpfs всё будет происходить в оперативной памяти, а на постоянных хранилищах не останется никаких следов.

Файловая система имеет следующие свойства:

  • Файловая система может использовать пространство подкачки, когда этого требует физическая нагрузка на память.
  • Файловая система потребляет столько физической памяти и пространства подкачки, сколько требуется для хранения текущего содержимого файловой системы.
  • Во время операции повторного монтирования (mount -o remount) размер файловой системы может быть изменён (без потери существующего содержимого файловой системы).

Arch использует tmpfs в каталоге /run, с симлинками для совместимости /var/run и /var/lock. Он также используется для /tmp в настройках по умолчанию Systemd и не требует записи в fstab, если не требуется конкрентная настройка. Как правило, интенсивные задачи и программы ввода/вывода, которые выполняют частые операции чтения/записи могут получить пользу используя каталог TMPFS. Некоторые приложения могут даже получить существенную выгоду, снимая нагрузку некоторых (или всех) своих данных на общую память. Например, перемещение профиля Firefox и chromium в оперативную память показывает значительное улучшение производительности. 

По умолчанию раздел TMPFS имеет максимальный размер установленный от половины всей вашей оперативной памяти, но это можно настроить. Обратите внимание, что фактическое потребление памяти/подкачки зависит от того, на сколько вы заполните её, так как разделы не потребляют память до тех пор, пока это будет на самом деле необходимо. Создавать раздел например только для Firefox крайне глупо, для браузеров существует отдельный demon (нужна установка).

Пример (/etc/fstab):

tmpfs  /tmp  tmpfs   size=16G,defaults,noatime,mode=1777 0 0

Смотрите справочную страницу mount для получения дополнительной информации. Полезная опция монтирования из справочной страницы является опция default.

Пример для папок пользователя (/etc/fstab):

tmpfs /home/bunker-fsb/.cache tmpfs noatime,nodev,nosuid,size=2G 0 0

Перезагрузитесь, для того чтобы изменения вступили в силу. Обратите внимание, что может быть заманчивым, выполнить mount -a, чтобы сделанные изменения вступили в силу немедленно, это сделает недоступными какие-либо файлы, которые в настоящее время находятся в этих каталогах (например, особенно проблематично для запуска программ с файлами блокировки). 

Посмотреть в /proc/mounts используя findmnt:

# findmnt --target /tmp

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

# mount -o remount,size=2G,noatime /tmp

Дополнительная информация доступна на WiKi.


Tmpfs стал поддерживаться Linux с версии 2.4. Tmpfs (также известная как shmfs) отличается от Linux RAM диска динамическим выделением памяти и перемещением неиспользуемых страниц в swap.

 

Последние материалы