table of contents
- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
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 поддерживает следующие параметры монтирования:
- size=байт
- Задать максимальный размер файловой системы. Указывается в байтах и округляется до полного размера страницы.
- У размера может быть указан суффикс k, m или g единиц измерения Ki, Mi, Gi (двоичный кило (kibi), двоичный мега (mebi) и двоичный гига (gibi) -байт).
- Также у размер может быть указан суффикс %, задающий размер экземпляра в процентах от физической оперативной памяти.
- Если size или nr_blocks не заданы, то по умолчанию используется size=50%.
- nr_blocks=блоков
- То же, что и size, но считается в блоках PAGE_CACHE_SIZE.
- У блоков может быть задан суффикс k, m или g, как у size, но нельзя задать суффикс %.
- nr_inodes=инод
- Максимальное количество инод в экземпляре. Значением по умолчанию является или половина количества страниц оперативной памяти, или (для машины с highmem) количество страниц памяти lowmem, выбирается меньшее.
- У инод может быть задан суффикс k, m или g, как у size, но нельзя задать суффикс %.
- mode=права
- Назначить начальные права на корневой каталог.
- gid=gid (начиная с Linux 2.5.7)
- Назначить начальный идентификатор группы на корневой каталог.
- uid=uid (начиная с Linux 2.5.7)
- Назначить начальный идентификатор пользователя на корневой каталог.
- huge=huge_option (начиная с Linux 4.7.0)
- Задать алгоритм выделения огромной табличной памяти для всех файлов в этом экземпляре (если включён CONFIG_TRANSPARENT_HUGE_PAGECACHE).
- Значением huge_option может быть одно из:
- never
- Не выделять огромные страницы. По умолчанию.
- always
- Каждый раз пытаться выделить огромные страницы при необходимости в новой странице.
- within_size
- Only allocate huge page if it will be fully within i_size. Also respect fadvise(2) and madvise(2) hints
- advise
- Only allocate huge pages if requested with fadvise(2) or madvise(2).
- deny
- Запретить включение огромных страниц у всех монтирований, используется в экстренных случаях.
- force
- Принудительно включить огромные страницы у всех монтирований; полезно при отладке.
- mpol=mpol_option (начиная с Linux 2.6.15)
- Задать алгоритм выделения памяти NUMA для всех файлов в этом экземпляре (если включён CONFIG_NUMA).
- Значением mpol_option может быть одно из:
- default
- Использовать алгоритм выделения из процесса (смотрите set_mempolicy(2)).
- prefer:узел
- Отдавать предпочтение выделению памяти из указанного узла.
- bind:список_узлов
- Выделять память только на узлах из списка_узлов.
- interleave
- Выделять на каждом узле по очереди.
- interleave:список_узлов
- Выделять на каждом узле по очереди из списка_узлов.
- local
- Отдавать предпочтение выделению памяти из локального узла.
- Здесь список_узлов — это список перечисленных через запятую десятичных чисел идиапазонов, указывающие узлы 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 (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
5 февраля 2023 г. | Справочные страницы Linux 6.03 |