Tmpfs: различия между версиями

Материал из ALT Linux Wiki
м (→‎Создание: уточения)
м (→‎Что это и зачем?: наблюдаю трёхкратную разницу по времени сборки icewm.iso из m-p между tmpfs@DDR3 и ext4@SATA)
Строка 7: Строка 7:
Организовывается в виртуальной памяти (RAM+swap), поэтому:
Организовывается в виртуальной памяти (RAM+swap), поэтому:
* при отмонтировании, перезагрузке или выключении теряет содержимое полностью;
* при отмонтировании, перезагрузке или выключении теряет содержимое полностью;
* не озадачивается долетанием данных до пластин в случае использования свопа на дисках — вследствие чего работает быстрее настоящих ФС даже в случае активного использования свопа;
* не озадачивается долетанием данных до пластин в случае использования свопа на дисках — вследствие чего работает в разы быстрее настоящих ФС даже в случае активного использования свопа;
* размер tmpfs может превышать размер доступной RAM.
* размер tmpfs может превышать размер доступной RAM.



Версия от 10:27, 26 мая 2012

Что это и зачем?

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

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

  • при отмонтировании, перезагрузке или выключении теряет содержимое полностью;
  • не озадачивается долетанием данных до пластин в случае использования свопа на дисках — вследствие чего работает в разы быстрее настоящих ФС даже в случае активного использования свопа;
  • размер tmpfs может превышать размер доступной RAM.

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

Создание

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

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

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

 tmpfs /tmp tmpfs size=4g,nr_inodes=1m,nosuid 0 0

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

 mount -o remount /tmp

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

Проблемы

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

Примечания

  1. Для личного hasher может быть достаточно одного-двух гигабайт; для создания DVD при помощи mkimage — восемь-десять; для многопользовательского случая соответственно умножаем.