ИМЯ
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
- Выделять
огромную
страницу
только,
если в ней
займётся
i_size. Также
учитываются
подсказки
fadvise(2)/madvise(2).
- advise
- Выделять
огромные
страницы
только,
если они
запрашиваются
с помощью
fadvise(2)/madvise(2).
- deny
- Запретить
включение
огромных
страниц у
всех
монтирований,
используется
в
экстренных
случаях.
- force
- Принудительно
включить
огромные
страницы у
всех
монтирований;
полезно
при
отладке.
- mpol=mpol_option
(начиная с Linux
2.6.15)
- Задать
алгоритм
выделения
памяти NUMA
для всех
файлов в
этом
экземпляре
(если
включён
CONFIG_NUMA).
- Значением
mpol_option может
быть одно
из:
- Здесь
список_узлов
— это
список
перечисленных
через
запятую
десятичных
чисел
идиапазонов,
указывающие
узлы 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.