tmpfs в Linux
tmpfs
Tmpfs — временное файловое хранилище во многих Unix-подобных ОС. Предназначена для монтирования файловой системы, но размещается в ОЗУ вместо физического диска. Подобная конструкция является подобной RAM-диску.
tmpfs — файлы, для которых нужна максимальная скорость доступа, и которые можно безболезненно потерять при отключении питания. Ведь оперативная память в тысячи раз быстрее самых быстрых SSD, но теряет содержимое при отключении.
Все данные в tmpfs являются временными в том смысле, что ни одного файла не будет создано на жёстком диске
После перезагрузки все данные, содержащиеся в tmpfs, будут утеряны
Память, используемая для временной файловой системы, варьируется в размерах в зависимости от количества размещённых файлов в ней и может быть расширена за счёт swap. Многие Unix-подобные ОС используют tmpfs по умолчанию для размещения /tmp или для разделения памяти. Это можно увидеть в выводе команды df:
df -h
ilesystem Size Used Available Use% Mounted on
devtmpfs 10.0M 0 10.0M 0% /dev
shm 3.9G 124.0K 3.9G 0% /dev/shm
/dev/vda3 93.8G 11.3G 77.7G 13% /
tmpfs 1.6G 428.0K 1.6G 0% /run
/dev/vda1 88.2M 33.4M 47.8M 41% /boot
tmpfs 7.0G 8.0K 7.0G 0% /tmp
tmpfs (также известная как shmfs) отличается от Linux RAM-диска динамическим выделением памяти и перемещением неиспользуемых страниц в swap
Пример использования tmpfs, которая будет возрастать до 1 GiB с 10240 инодами в ОЗУ/swap и доступная только владельцу каталога /space
mount -t tmpfs -o size=1G,nr_inodes=10k,mode=0700 tmpfs /space
В tmpfs могут быть размещены любые каталоги, хранящие временные данные, удаляемые при перезагрузке системы: /var/lock, /var/run, /tmp и др.
Кроме того, для уменьшения количества дисковых операций (в целях максимального повышения производительности системы или экономии ресурса твердотельных накопителей) в tmpfs иногда размещают каталоги, которые обычно хранят данные между перезагрузками, например, /var/tmp (этот каталог нередко очищается, хотя рекомендовано этого не делать[4]) или каталоги кэширования некоторых программ (интернет-браузеров).
Источник: https://ru.wikipedia.org/wiki/Tmpfs
Размер каталога /tmp по умолчанию составляет 50% от размера оперативной памяти
В docker это поведение можно изменить, подробнее здесь: https://docs.docker.com/engine/storage/tmpfs/
Размер каталога /tmp можно изменить путем перемонтирования remount или автоматически при перезапуске системы
# Изменить размер /tmp на лету
mount -o remount,size=2G /tmp
# Изменить размер при запуске системы /etc/fstab :
tmpfs /tmp tmpfs nosuid,nodev,size=10G 0 0
Назначение
разместить обрабатываемые файлы типа исходников, фотографий, и т. д. — время обработки ощутимо сократится;
под хранение одноразовых секретных файлов — нажатие кнопки Reset уничтожит их без всяких следов;
вынести на него «тяжёлую» программу, чтобы ускорить её запуск — это может быть игра или IDE.
Источник: https://linuxrussia.com/articles/file-system-linux-ramfs
Дополнительные источники
Прочти про Zram: https://linuxrussia.com/articles/file-system-linux-ramfs
Файловая система Linux полностью на tmpfs: https://habr.com/ru/articles/253759/
https://www.altlinux.org/Tmpfs
https://www.opennet.ru/docs/RUS/fs/l-fs3_ru.html