Tmpfs что это windows

tmpfs (Русский)

tmpfs — это временная файловая система, которая находится в памяти и/или вашем разделе(ах) подкачки, в зависимости от того, насколько вы её заполнили. Монтирование каталогов как TMPFS — это эффективный способ ускорения доступа к своим файлам. Также это полезно, если вам нужно, чтобы содержимое каталогов автоматически удалялось при перезагрузке.

Contents

Использование

Некоторые каталоги, где TMPFS обычно используются: /tmp, /var/lock и /var/run. Не используйте его на /var/tmp, так как этот каталог предназначен для временных файлов, которые сохраняются после перезагрузки.

Arch использует tmpfs в каталоге /run , с симлинками для совместимости /var/run и /var/lock . Он также используется для /tmp в настройках по умолчанию Systemd и не требует записи в fstab, если не требуется конкрентная настройка.

glibc 2.2 и выше ожидает что /dev/shm будет смонтирован tmpfs для POSIX разделяемой памяти. Монтирование /dev/shm в tmpfs выполняется автоматически systemd, поэтому ручная настройка в fstab больше не требуется.

Как правило, интенсивные задачи и программы ввода/вывода, которые выполняют частые операции чтения/записи могут получить пользу используя каталог TMPFS. Некоторые приложения могут даже получить существенную выгоду, снимая нагрузку некоторых (или всех) своих данных на общую память. Например, перемещение профиля Firefox в оперативную память показывает значительное улучшение производительности.

Примеры

По умолчанию раздел TMPFS имеет максимальный размер устанавленный от половины всей вашей оперативной памяти, но это можно настроить. Обратите внимание, что фактическое потребление памяти/подкачки зависит от того, на сколько вы заполните её, так как разделы TMPFS не потребляют память до тех пор, пока это будет на самом деле необходимо.

Чтобы точно установить максимальный размер, в данном примере, чтобы переопределить значение по умолчанию для монтирования /tmp , используем опцию монтирования size :

Вот более сложный пример, показывающий, как добавить монтирование TMPFS для пользователей. Это полезно для веб-сайтов, MySQL TMP файлов,

/.vim/ , и многое другое. Очень важно, попытаться получить идеальные параметры монтирования для того, что вы пытаетесь достичь. Цель состоит в том, чтобы получить безопасные параметры, насколько это возможно, чтобы предотвратить повышенное использование. Будет безопасным ограничить размер, указать Uid и GID + mode. Для получения дополнительной информации по этому вопросу, пройдите по ссылкам перечисленным в секции #Смотрите также.

Смотрите справочную страницу mount для получения дополнительной информации. Полезная опция монтирования из справочной страницы является опция default . По крайней мере понятная.

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

После применения изменений, вы можете убедиться в том, что они вступили в силу, посмотрев в /proc/mounts и используя findmnt :

TMPFS также может быть временно изменен, без необходимости в перезагрузке, например, когда в ближайшее время необходимо выполнить большую работу компиляции. В этом случае вы можете запустить:

Отключить автоматическое монтирование

Systemd, может автоматически устанавливать /tmp как tmpfs, даже если у вас нет записи в вашем /etc/fstab .

Для отключения автоматического монтирования, выполните следующую команду:

Файлы больше не будут хранится в tmpfs, но будут на вашем блочном устройстве. Содержание /tmp теперь будет сохранятся между перезагрузками, чего вам бы не хотелось. Чтобы сохранить прежнее поведение и очищать каталог /tmp атоматически когда вы перезагружаете машину, рассмотрите возможность использования tmpfiles.d(5) :

Читайте также:  Linux nano copy and paste

Решение проблем

Не получается открытие символьных ссылок в tmpfs от root

Учитывая что /tmp использует TMPFS, измените текущую директорию на /tmp , а затем создайте файл и создайте символическую ссылку на этот файл в том же каталог /tmp . При попытке открыть файл, созданный с помощью символической ссылки, вы получите ошибку «доступ запрещён». Ожидается, что это как /tmp содержит «прилипший» набор битов.

Tmpfs

Tmpfs — временное файловое хранилище во многих Unix-подобных ОС. Предназначена для монтирования файловой системы, но размещается в ОЗУ вместо физического диска. Подобная конструкция является RAM-диском.

Содержание

Семантика

Все данные в Tmpfs являются временными, в том смысле, что ни одного файла не будет создано на жёстком диске. После перезагрузки все данные, содержащиеся в Tmpfs, будут утеряны.

Память, используемая для Tmpfs, варьируется в размерах в зависимости от количества размещённых файлов в ней и может быть расширена за счёт swap. Многие Unix-дистрибутивы используют Tmpfs по умолчанию для размещения /tmp или для разделения памяти. Это можно увидеть в выводе команды df, например:

Реализации

SunOS/Solaris

SunOS 4 включала ранние разработки Tmpfs; она впервые появилась в SunOS 4.0 в конце 1987, вместе с новым ортогональным управлением адресным пространством, что позволяет разместить любой объект в памяти. [1] [2]

В Solaris /tmp размещалась в Tmpfs, что стало стандартом в Solaris 2.1, вышедшей в ноябре 1994. Вывод команды df в Solaris показывал swap как файловую систему любого Tmpfs раздела:

Linux

Tmpfs стал поддерживаться Linux с версии 2.4. [3] Tmpfs (также известная как shmfs) отличается от Linux RAM диска динамическим выделением памяти и перемещением неиспользуемых страниц в swap. RAMfs, наоборот, не использует swap (это может быть как преимуществом, так и недостатком). Вдобавок, MFS и некоторые старые версии RAMfs, не изменяли свой размер динамически, а оставались того размера, как были примонтированы.

Использование Tmpfs, например:

которая будет возрастать до 1 GiB с 10240 инодами в ОЗУ/swap и доступная только владельцу каталога /space. Максимальный размер файловой системы может быть изменён «на лету», например:

В Tmpfs могут быть размещены любые каталоги, хранящие временные данные, удаляемые при перезагрузке системы: /var/lock, /var/run, /tmp и др. Кроме того, для уменьшения количества дисковых операций (в целях максимального повышения производительности системы или экономии ресурса твердотельных накопителей) в Tmpfs иногда размещают каталоги, которые обычно хранят данные между перезагрузками, например, /var/tmp (этот каталог нередко очищается, хотя рекомендовано этого не делать [4] ) или каталоги кэширования некоторых программ (интернет-браузеров).

Tmpfs была реализована в NetBSD версии 4.0, 10 сентября 2005 [5] . В FreeBSD 7.0 появилась портированная из NetBSD Tmpfs. [6] В DragonFly BSD, с версии 2.5.1, тоже имеется портированная из NetBSD реализация Tmpfs.

Microsoft Windows

В Windows имеется приблизительный аналог Tmpfs в виде «временных файлов». Файлы, созданные с атрибутом FILE_ATTRIBUTE_TEMPORARY и флагом FILE_FLAG_DELETE_ON_CLOSE размещаются в ОЗУ и записываются на жёсткий диск только если системе не хватает оперативной памяти. Таким образом, «временные файлы» аналогичны Tmpfs, за исключением того, что при нехватке памяти они записываются по указанному при их создании пути, а не в файл подкачки. Этот метод часто используется на серверах с TransmitFile для подготовки контента и его буферизацией перед отправкой клиенту.

Tmpfs

Tmpfs — временное файловое хранилище во многих Unix-подобных ОС. Предназначена для монтирования файловой системы, но размещается в ОЗУ вместо физического диска. Подобная конструкция является RAM-диском.

Содержание

Семантика

Все данные в Tmpfs являются временными, в том смысле, что ни одного файла не будет создано на жёстком диске. После перезагрузки все данные, содержащиеся в Tmpfs, будут утеряны.

Память, используемая для Tmpfs, варьируется в размерах в зависимости от количества размещённых файлов в ней и может быть расширена за счёт swap. Многие Unix-дистрибутивы используют Tmpfs по умолчанию для размещения /tmp или для разделения памяти. Это можно увидеть в выводе команды df, например:

Реализации

SunOS/Solaris

SunOS 4 включала ранние разработки Tmpfs; она впервые появилась в SunOS 4.0 в конце 1987, вместе с новым ортогональным управлением адресным пространством, что позволяет разместить любой объект в памяти. [1] [2]

Читайте также:  Allow access network windows

В Solaris /tmp размещалась в Tmpfs, что стало стандартом в Solaris 2.1, вышедшей в ноябре 1994. Вывод команды df в Solaris показывал swap как файловую систему любого Tmpfs раздела:

Linux

Tmpfs стал поддерживаться Linux с версии 2.4. [3] Tmpfs (также известная как shmfs) отличается от Linux RAM диска динамическим выделением памяти и перемещением неиспользуемых страниц в swap. RAMfs, наоборот, не использует swap (это может быть как преимуществом, так и недостатком). Вдобавок, MFS и некоторые старые версии RAMfs, не изменяли свой размер динамически, а оставались того размера, как были примонтированы.

Использование Tmpfs, например:

которая будет возрастать до 1 GiB с 10240 инодами в ОЗУ/swap и доступная только владельцу каталога /space. Максимальный размер файловой системы может быть изменён «на лету», например:

В Tmpfs могут быть размещены любые каталоги, хранящие временные данные, удаляемые при перезагрузке системы: /var/lock, /var/run, /tmp и др. Кроме того, для уменьшения количества дисковых операций (в целях максимального повышения производительности системы или экономии ресурса твердотельных накопителей) в Tmpfs иногда размещают каталоги, которые обычно хранят данные между перезагрузками, например, /var/tmp (этот каталог нередко очищается, хотя рекомендовано этого не делать [4] ) или каталоги кэширования некоторых программ (интернет-браузеров).

Tmpfs была реализована в NetBSD версии 4.0, 10 сентября 2005 [5] . В FreeBSD 7.0 появилась портированная из NetBSD Tmpfs. [6] В DragonFly BSD, с версии 2.5.1, тоже имеется портированная из NetBSD реализация Tmpfs.

Microsoft Windows

В Windows имеется приблизительный аналог Tmpfs в виде «временных файлов». Файлы, созданные с атрибутом FILE_ATTRIBUTE_TEMPORARY и флагом FILE_FLAG_DELETE_ON_CLOSE размещаются в ОЗУ и записываются на жёсткий диск только если системе не хватает оперативной памяти. Таким образом, «временные файлы» аналогичны Tmpfs, за исключением того, что при нехватке памяти они записываются по указанному при их создании пути, а не в файл подкачки. Этот метод часто используется на серверах с TransmitFile для подготовки контента и его буферизацией перед отправкой клиенту.

Файловая система в оперативной памяти — как пользоваться tmpfs

Файловая система tmpfs может найти повседневное применение в вашей деятельности, поскольку она невероятно быстрая и может помочь снизить нагрузку на ваше постоянное хранилище (особенно актуально тем, у кого Linux установлен на флешку или карту памяти).

tmpfs — это виртуальная файловая система, располагающаяся в оперативной памяти.

Средство tmpfs позволяет создавать файловые системы, содержимое которых находится в виртуальной памяти. Поскольку файлы в таких файловых системах обычно находятся в ОЗУ, доступ к файлам осуществляется очень быстро.

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

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

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

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

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

Ещё одна цель использования — снизить износ постоянного хранилища. Это не особенно актуально для жёсткого диска или твердотельного диска — современные модели при любом типе домашнего использования переживут нас. Но это может быть актуально, если система установлена на карту памяти. Вы можете разместить в оперативную память приложение, которое постоянно использует хранилище (часто обращается к файлам или непрерывно сохраняет файлы), тем самым ускорится работа этого приложения, а также всей системы за счёт снижения нагрузки на карту памяти.

Ещё одна возможная причина использование — незаметность, при работе в tmpfs всё будет происходить в оперативной памяти, а на постоянных хранилищах не останется никаких следов.

Рассмотрим пример копирования файлов — насколько быстрее это будет происходить в tmpfs по сравнению с дисками.

Читайте также:  Uefi firmware settings windows 10 что это

Создадим точку монтирования:

Создадим виртуальную файловую систему размером 20 Гигабайт в оперативной памяти:

Скопируем туда файл размером в несколько Гигабайт:

Проверим, сколько времени понадобится для создания копии этого файла в оперативной памяти:

Понадобилось совсем немного времени — примерно полторы секунды.

А теперь сделаем копию этого же файла на жёстком диске:

Понадобилось 14 секунд — в 10 раз больше времени.

Итак, используя tmpfs можно добиться максимальной скорости доступа к файлам.

Системное администрирование и мониторинг Linux/Windows серверов и видео CDN

Статьи по настройке и администрированию Windows/Linux систем

  • Полезное
    • Карта сайта
    • Мой сайт-визитка
  • Рубрики
    • Linux
      • VoIP
      • Безопасность
      • Видеопотоки
      • Системы виртуализации
      • Системы мониторинга
    • Windows
    • Интересное
    • Сеть и Интернет
  • Мета
    • Войти
    • RSS Feed

Настройка и использование ramfs и tmpfs

Решил написать маленькую статью о ramfs и tmpfs. Если у вас есть сервера с нормальным количеством RAM и нужно увеличить скорость чтения и записи динамичного контента (в моем случае – это кэширование видео чанков и вообще кэш), это именно то, что вам надо.

Настройка и тест ramfs

Файловая система ramfs использует столько оперативной памяти, сколько позволит система. Если вся оперативка закончилась, а файлы продолжают литься – системе придет конец. Даже если будет указан максимальный размер при монтировании – никаких уведомлений вы не получите если этот лимит будет превышен, память просто будет таять.
Приступаем к практике. Для начала создадим папку и смонтируем ramfs раздел.

Чтобы проверить, где у нас смонтировано ramfs разделы нужно использовать команду mount, так как df ничего не покажет.

Теперь протестируем скорость записи и чтения. У меня есть файлы по 200М каждый и 489М RAM. Т.е. если скопируем один файл в папку /mnt/ramfs-folder – он попадёт в RAM, а именно в страничный кэш(используется при операциях чтения).

Как видим, теперь 200М попали в RAM, теперь можно сравнить скорость чтения и записи файлов с диска и с ramfs.

Ну и на последок проверим что будет, если в ramfs папку залить файлов больше чем доступно RAM.

Как видно, закончилась память и теперь системе поможет только reboot. Чтобы таких ситуаций не возникло, нужно настроить мониторинг размера ramfs.

Настройка и тест tmpfs

Данная файловая система имеет заранее установленный фиксированный размер и она может размещаться в RAM и swap памяти. Если вся оперативка закончилась, а файлы продолжают литься – будет использоваться swap и уже после того, как swap закончиться системе придет конец. При монтировании нужно указывать желаемый размер файловой системы и если указанный лимит будет привешен – система выдаст соответствующее сообщение.
Приступаем к практике. Для начала создадим папку и смонтируем tmpfs раздел размером 600М.

В данном случае df покажет смонтированную tmpfs файловую систему.
Напомню, что у нас есть файлы по 200М каждый, 489М RAM и 509М swap. Т.е. если скопируем файл в папку /mnt/tmpfs-folder – он попадёт в RAM, а если RAM будет забит, но лимит не превышен – мы попадем в swap. Проверяем.

Как видим, когда закончилось зарезервированное место в tmpfs мы получили «No space left on device» сообщение. Когда закончился RAM, мы попали в swap.
Теперь протестируем скорость записи и чтения.

Ну и на последок проверим что будет, если в tmpfs папку залить файлов больше чем доступно RAM и swap вместе взятых – картина та же, сначала закончиться RAM, потом swap, потом нужен будет reboot. По этому нужно мониторить и tmpfs и swap или ставить размер tmpfs меньшим чем размер RAM-a.

Заключение

Обе файловые системы ramfs и tmpfs являются энергозависимыми(volatile). Иными словами, если в системе произойдет сбой, она будет перезагружена или будет выключена по какой-либо причине, данные, хранящиеся в любой из этих файловых систем будут уничтожены. По этому, не советую здесь хранить важных данных.
В нашей системе видостриминга используется ramfs для кэширования VOD контента размер которого контролируется мониторинг системой.

Оцените статью