ИМЯ
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
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
man-pages-ru-talks@lists.sourceforge.net.