ИМЯ
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.