Scroll to navigation

tmpfs(5) File Formats Manual tmpfs(5)

ИМЯ

tmpfs - файловая система в виртуальной памяти

ОПИСАНИЕ

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

Файловая система создаётся автоматически при монтировании с типом tmpfs с помощью команды следующего вида:


$ sudo mount -t tmpfs -o size=10M tmpfs /mnt/mytmpfs

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

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

При размонтировании файловой системы tmpfs её содержимое уничтожается (теряется).

Параметры монтирования

Файловая система tmpfs поддерживает следующие параметры монтирования:

Задать максимальный размер файловой системы. Указывается в байтах и округляется до полного размера страницы.
У размера может быть указан суффикс k, m или g единиц измерения Ki, Mi, Gi (двоичный кило (kibi), двоичный мега (mebi) и двоичный гига (gibi) -байт).
Также у размер может быть указан суффикс %, задающий размер экземпляра в процентах от физической оперативной памяти.
Если size или nr_blocks не заданы, то по умолчанию используется size=50%.
То же, что и size, но считается в блоках PAGE_CACHE_SIZE.
У блоков может быть задан суффикс k, m или g, как у size, но нельзя задать суффикс %.
Максимальное количество инод в экземпляре. Значением по умолчанию является или половина количества страниц оперативной памяти, или (для машины с highmem) количество страниц памяти lowmem, выбирается меньшее.
У инод может быть задан суффикс k, m или g, как у size, но нельзя задать суффикс %.
Назначить начальные права на корневой каталог.
Назначить начальный идентификатор группы на корневой каталог.
Назначить начальный идентификатор пользователя на корневой каталог.
Set the huge table memory allocation policy for all files in this instance (if CONFIG_TRANSPARENT_HUGEPAGE is enabled).
Значением huge_option может быть одно из:
Не выделять огромные страницы. По умолчанию.
Каждый раз пытаться выделить огромные страницы при необходимости в новой странице.
Only allocate huge page if it will be fully within i_size. Also respect fadvise(2) and madvise(2) hints
Only allocate huge pages if requested with fadvise(2) or madvise(2).
Запретить включение огромных страниц у всех монтирований, используется в экстренных случаях.
Принудительно включить огромные страницы у всех монтирований; полезно при отладке.
Задать алгоритм выделения памяти NUMA для всех файлов в этом экземпляре (если включён CONFIG_NUMA).
Значением mpol_option может быть одно из:
Использовать алгоритм выделения из процесса (смотрите set_mempolicy(2)).
Отдавать предпочтение выделению памяти из указанного узла.
Выделять память только на узлах из списка_узлов.
Выделять на каждом узле по очереди.
Выделять на каждом узле по очереди из списка_узлов.
Отдавать предпочтение выделению памяти из локального узла.
Здесь список_узлов — это список перечисленных через запятую десятичных чисел идиапазонов, указывающие узлы NUMA. Диапазон задаётся парой десятичных чисел через тире, наименьший и наибольший номера узлов диапазона. Пример: mpol=bind:0-3,5,7,9-15.

ВЕРСИИ

Свойство tmpfs было добавлено в Linux 2.4 как последователь старого свойства ramfs, в котором отсутствует возможность проверки ограничения и использования пространства подкачки.

ЗАМЕЧАНИЯ

Чтобы пользовательские инструменты и приложения могли создавать файловые системы tmpfs ядро должно быть собрано с параметром CONFIG_TMPFS.

Файловая система tmpfs поддерживает расширенные атрибуты (смотрите xattr(7)), но расширенные атрибуты user не допускаются.

Для общей памяти System V shmget(2)) и общих анонимных отображений (mmap(2) с флагами MAP_SHARED и MAP_ANONYMOUS) используется внутренняя файловая система общей памяти. Эта файловая система доступна независимо от того, собрано ли ядро с параметром CONFIG_TMPFS.

Файловая система tmpfs, смонтированная в /dev/shm, используется для реализации общей памяти POSIX (shm_overview(7)) и семафоров POSIX (sem_overview(7)).

Объём памяти, использованной во всех файловых системах tmpfs показывается в поле Shmem файла /proc/meminfo и в поле shared, показываемом free(1).

Свойство tmpfs раньше называлось shmfs.

СМ. ТАКЖЕ

df(1), du(1), memfd_create(2), mmap(2), set_mempolicy(2), shm_open(3), mount(8)

Файлы исходного кода ядра Documentation/filesystems/tmpfs.txt и Documentation/admin-guide/mm/transhuge.rst.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

28 июля 2023 г. Linux man-pages 6.05.01