tmpfs (Русский)

tmpfs - это временная файловая система, которая находится в памяти и/или вашем разделе(ах) подкачки, в зависимости от того, насколько вы её заполнили. Монтирование каталогов как TMPFS - это эффективный способ ускорения доступа к своим файлам. Также это полезно, если вам нужно, чтобы содержимое каталогов автоматически удалялось при перезагрузке.

Совет: Можно создавать временные файлы в каталогах tmpfs при загрузке системы с помощью systemd-tmpfiles.

Состояние перевода: На этой странице представлен перевод статьи tmpfs. Дата последней синхронизации: 6 мая 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Использование

Некоторые каталоги, где обычно используется tmpfs(5): /tmp, /var/lock и /var/run. Не используйте его на /var/tmp, так как этот каталог предназначен для временных файлов, которые сохраняются после перезагрузки.

Arch использует tmpfs в каталоге /run, с симлинками для совместимости /var/run и /var/lock. Он также используется для /tmp в настройках по умолчанию systemd и не требует записи в fstab, если не требуется конкрентная настройка.

glibc 2.2 и выше ожидает что /dev/shm будет смонтирован tmpfs для POSIX разделяемой памяти. Монтирование /dev/shm в tmpfs выполняется автоматически systemd, поэтому ручная настройка в fstab больше не требуется.

Как правило, задачи и программы, которые выполняют частые операции чтения/записи, могут выиграть от использования каталога tmpfs. Некоторые приложения могут даже получить существенную выгоду при переносе некоторых (или всех) их данных на общую память. Например, перемещение профиля Firefox в оперативную память показывает значительное улучшение производительности.

Примеры

Примечание: Фактическое потребление памяти/подкачки зависит от того, насколько вы заполните разделы tmpfs, поскольку они не потребляют память до тех пор, пока она действительно не понадобится.

По умолчанию раздел tmpfs имеет максимальный размер в половину от всей оперативной памяти, но это можно настроить. Чтобы точно установить максимальный размер, в данном примере, чтобы переопределить значение по умолчанию для монтирования /tmp, используем опцию монтирования :

Пример с опциями монтирования для большей безопасности:

Смотрите tmpfs(5) и Безопасность#Файловые системы для более подробной информации.

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

После применения изменений, вы можете убедиться в том, что они вступили в силу, посмотрев в /proc/mounts и используя findmnt:

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

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

Отключить автоматическое монтирование

systemd автоматически монтирует /tmp как tmpfs, даже если нет записи в . Для отключения автоматического монтирования замаскируйте юнит .

После этого файлы в /tmp станут храниться не в памяти, а на блочном устройстве. Содержимое /tmp теперь будет сохраняться между перезагрузками, что может быть нежелательно. Чтобы вернуть прежнее поведение и очищать каталог /tmp автоматически при перезагрузке, можно использовать :

Решение проблем

Не получается открытие символьных ссылок в tmpfs от root

Предполагая, что /tmp использует tmpfs, измените текущий каталог на /tmp, а затем создайте файл и создайте символическую ссылку на этот файл в том же каталоге /tmp. При попытке прочитать файл по символической ссылке иногда может возникать ошибка «Отказано в доступе». Это ожидаемое поведение, так как /tmp имеет установленный sticky bit.

Поведение можно настроить через или просто с помощью sysctl: . Чтобы сделать изменение постоянным, смотрите sysctl (Русский)#Настройка.

Смотрите также

gollark: Old phones have built-in long-duration battery backups, very low power draw, integrated screens for status monitoring, processors generally as good as or better as Raspberry Pis, and decently fast cellular modems.
gollark: I don't see why you would need *two* UPSes for two things.
gollark: Why spend money on expensive UPSes when you could run your servers on old phones?
gollark: My important stuff is replicated to my laptop, which is *relatively* portable.
gollark: USB sticks are quite easy to lose, and not hugely reliable.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.