Tmpfs linux что это

tmpfs (Русский)

Contents

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

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

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

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

Примеры

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tmpfs linux что это. Смотреть фото Tmpfs linux что это. Смотреть картинку Tmpfs linux что это. Картинка про Tmpfs linux что это. Фото Tmpfs linux что это

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

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

Tmpfs linux что это. Смотреть фото Tmpfs linux что это. Смотреть картинку Tmpfs linux что это. Картинка про Tmpfs linux что это. Фото Tmpfs linux что это

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

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

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

tmpfs

tmpfs

Полное названиеTemporary File System
ВариантыСодержится в оперативной памяти, а не в постоянной
ЗагрузочныйНет
Features
Прозрачное сжатиеНет
Транспорантное шифрованиеНет
Копирование и записьДа
Другие
Операционная системаUnix-подобные ОС

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

Хорошо подходит для /tmp и массовой сборки пакетов/образов.

Содержание

Создание

Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске).

Без опции size файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). С ручным заданием size можно не очень стесняться, поскольку в худшем разе получим свопинг и No space left on device. group: [Источник 1]

В дистрибутивах ALT Linux 4.0 и выше /tmp по умолчанию размещается на tmpfs (с помощью pam_mktemp), поэтому может быть достаточно создать при установке (или добавить позже) своп необходимого[1] объёма, указать в /etc/fstab желаемый размер (size можно указать в %):

и перемонтировать ФС:

Существует специально обученный пакет livecd-tmpfs, который постарается подобрать при загрузке подходящий размер tmpfs, исходя из доступной памяти и некоторых эвристик (либо конфигурационного файла).

При необходимости временно добавить свопа (например, для сборки крупного пакета) можно воспользоваться swap-файлами:

ramfs и tmpfs

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

Процесс монтирования файловых систем RAMFS и TMPFS практически одинаков на всех современных дистрибутивах Linux.

Этой командой каталог, в котором хранятся сессии PHP, размещается в оперативной памяти и задается максимальный размер хранимых данных в 300 Мб, чем немного (в зависимости от загруженности сервера скорее всего и много) разгрузилась дисковая подсистема.

Для RAMFS команда монтирования практически ничем не отличается:

Не забудьте, до монтирования нужно создать каталог командой mkdir. Например:

При всей своей схожести RAMFS и TMPFS имеют и достаточно существенные различия.

Но есть одно маленькое но. В отличии от TMPFS, RAMFS никогда не может быть вымещена в swap. И в этом есть свой плюс, так как память в swap мало чем отличается от жёсткого диска.

RAMFS и TMPFS размещают данные в оперативной памяти и в случае перезагрузки или падения сервера все данные будут утеряны. Если нужно хранить там достаточно важную информацию, то необходимо позаботиться синхронизацией данных на жёсткий диск. Например используя rsync по расписанию. [Источник 2]

Tmpfs и VM

Это не блочное устройство.

В отличие от большинства файловых систем (например, ext3, ext2, XFS, JFS, ReiserFS) tmpfs не является «надстройкой» над блочным устройством. Поскольку tmpfs напрямую «встроена» в VM, ее можно монтировать сразу после создания командой:

Организация

Организовывается в виртуальной памяти (RAM+swap), поэтому:

Семантика

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

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

Преимущества tmpfs

Динамически изменяемый размер файловой системы

Размер файловой системы, которая монтируется к /mnt/tmpfs (особенно,в случае с disk-based файловыми системами) первоначально имеет очень мал, но, по мере копирования и создания файлов драйвер tmpfs ассигнует у VM дополнительную память, динамически увеличивая емкость. Справедливо и обратное, при удалении файлов из /mnt/tmpfs драйвер отдает освобождаемую память операционной системе. Большой плюс tmpfs в том, что используется ровно столько памяти, сколько требуется.group: [Источник 3]

Скорость

Безинерционность

Недостатки tmpfs и уход от low VM conditions

Фактом является то, что tmpfs динамически растет и уменьшается. Каковы же последствия, если tmpfs файловая система разрастется так, что поглотит всю виртуальную память? Приемлемое решение еще не найдено. С ядром 2.4.4, произошло бы зависание. С ядром 2.4.6, подсистема VM имеет некоторую защиту, и авария не произойдет. Когда 2.4.6 почувствует точку, за которой ассигнование дополнительной памяти проблематично, дальнейшая запись будет невозможна в tmpfs filesystem. Сначала процессы в системе не смогут ассигновать дополнительную память; система станет уязвимой и непроизводительной. У суперпользователя есть время, чтобы предпринять шаги для выхода из low-VM condition.

Решение для Low VM

tmpfs позволяет указать максимальный размер файловой системы при ее монтировании или перемонтировании. Фактически, с ядром 2.4.6 и util-linux-2.11g, такие параметры можно установить только при монтировании, но не перемонтировании (в следующих версиях ядер это может быть уже решено). Установка оптимального лимита на размер tmpfs зависит от ресурсов и режима использования Linux box; идея в том, чтобы предотвратить возможность со стороны tmpfs filesystem истощения ресурсов виртуальной памяти и предотвратить low-VM conditions. Хороший способ найти приемлемый tmpfs upper-bound состоит в использовании top монитора для наблюдения за swap в момент пиковых нагрузок. Установить tmpfs upper-bound немного меньше, чем сумма свободной swap и RAM при пиковой нагрузке.

Создать tmpfs с лимитом на максимальный размер достаточно просто. Например:

В этом примере монтирование новой tmpfs происходит не к точке /mnt/tmpfs, а к специально созданному /dev/shm. Это каталог, который является официальной точкой монтирования («official» mountpoint) для tmpfs. Если вы используете devfs, этот каталог будет создан автоматически.

Для автоматического монтирования при загрузке системы допустимо сделать запись в файле /etc/fstab. Например:

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

Реализации

SunOS/Solaris

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

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

Linux

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

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

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

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

Tmpfs была реализована в NetBSD версии 4.0, 10 сентября 2005 [Источник 9]

В FreeBSD 7.0 появилась портированная из NetBSD Tmpfs. [Источник 10] В DragonFly BSD, с версии 2.5.1, тоже имеется портированная из NetBSD реализация Tmpfs.

Microsoft Windows

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

Источник

tmpfs

Содержание

Что это и зачем? [ править ]

tmpfs — файловая система, предназначенная для быстрого и ненадёжного хранения временных данных.

Организовывается в виртуальной памяти (RAM+swap), поэтому:

Хорошо подходит для /tmp и массовой сборки пакетов/образов.

Создание [ править ]

Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске).

Без опции size файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). С ручным заданием size можно не очень стесняться, поскольку в худшем разе получим свопинг и No space left on device.

В дистрибутивах ALT Linux 4.0 и выше /tmp по умолчанию размещается на tmpfs (с помощью pam_mktemp), поэтому может быть достаточно создать при установке (или добавить позже) своп необходимого [1] объёма, указать в /etc/fstab желаемый размер (size можно указать в %):

и перемонтировать ФС:

При необходимости временно добавить свопа (например, для сборки крупного пакета) можно воспользоваться swap-файлами:

Проблемы [ править ]

Известны проблемы со стабильностью даже той условной сохранности данных, которая декларируется tmpfs; так, при существенной нагрузке на VM во времена 2.6.18 могли наблюдаться невоспроизводимые (случайные) пропадания файлов и сбой сборки по этой причине. К выходу Server 4.0 часть таких проблем была исправлена, но при странностях следует попробовать воспроизвести сборку на реальной ФС (или выполнить несколько прогонов на tmpfs и оценить воспроизводимость места сбоя).

Источник

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

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

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

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

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

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

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

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

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

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

Tmpfs linux что это. Смотреть фото Tmpfs linux что это. Смотреть картинку Tmpfs linux что это. Картинка про Tmpfs linux что это. Фото Tmpfs linux что это

Как видно, закончилась память и теперь системе поможет только 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 контента размер которого контролируется мониторинг системой.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *