Tmpfs: различия между версиями
м (→Создание: +livecd-tmpfs) |
м (→Создание: разъяснение по размеру) |
||
Строка 9: | Строка 9: | ||
Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске). | Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске). | ||
Без опции <tt>size</tt> файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). | Без опции <tt>size</tt> файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). С ручным заданием <tt>size</tt> можно не очень стесняться, поскольку в худшем разе получим свопинг и <tt>No space left on device</tt>, а сборка даже на свопе всё равно быстрее сборки на реальной ФС. | ||
В дистрибутивах ALT Linux 4.0 и выше /tmp по умолчанию размещается на tmpfs (с помощью [[pam_mktemp]]), поэтому может быть достаточно создать при установке (или добавить позже) своп необходимого<ref>Для личного hasher может быть достаточно одного-двух гигабайт; для создания DVD при помощи mkimage — восемь-десять; для многопользовательского случая соответственно умножаем.</ref> объёма, указать в /etc/fstab желаемый размер tmpfs: | В дистрибутивах ALT Linux 4.0 и выше /tmp по умолчанию размещается на tmpfs (с помощью [[pam_mktemp]]), поэтому может быть достаточно создать при установке (или добавить позже) своп необходимого<ref>Для личного hasher может быть достаточно одного-двух гигабайт; для создания DVD при помощи mkimage — восемь-десять; для многопользовательского случая соответственно умножаем.</ref> объёма, указать в /etc/fstab желаемый размер tmpfs: |
Версия от 11:20, 8 ноября 2011
Что это и зачем?
tmpfs — файловая система, предназначенная для быстрого и ненадёжного хранения временных данных. Организовывается в виртуальной памяти (RAM+swap), поэтому при отмонтировании, перезагрузке или выключении теряет содержимое полностью. Не озадачивается долетанием данных до пластин в случае использования свопа на дисках, поэтому работает быстрее настоящих ФС даже в случае активного использования диска.
Подходит, например, для /tmp и сборок ПО.
Создание
Предполагает наличие достаточного объёма виртуальной памяти (для активного использования рекомендуется RAM, а своп — желательно на отдельном диске).
Без опции size файловая система конфигурируется на объём, равный половине RAM (при этом эта часть не резервируется, а используется по мере надобности, так что дефолт вполне разумный). С ручным заданием size можно не очень стесняться, поскольку в худшем разе получим свопинг и No space left on device, а сборка даже на свопе всё равно быстрее сборки на реальной ФС.
В дистрибутивах ALT Linux 4.0 и выше /tmp по умолчанию размещается на tmpfs (с помощью pam_mktemp), поэтому может быть достаточно создать при установке (или добавить позже) своп необходимого[1] объёма, указать в /etc/fstab желаемый размер tmpfs:
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 и оценить воспроизводимость места сбоя).
Примечания
- ↑ Для личного hasher может быть достаточно одного-двух гигабайт; для создания DVD при помощи mkimage — восемь-десять; для многопользовательского случая соответственно умножаем.