Почему / tmp не использует tmpfs?


17

У меня много оперативной памяти, и я использую очень мало. Я также записываю некоторые скринкасты gtk-recordmydesktop, которые по умолчанию сохраняются во /tmpвремя записи. Я предполагал, что это будет означать хранение в ОЗУ как можно больше, но потом я на самом деле проверил и обнаружил, что /tmpон не смонтирован с помощью tmpfs. Это почему?


Ответы:


16

Я думаю, что вы ответили на свой вопрос. Многие программы используют /tmpдля хранения временных файлов, и они могут быть огромными.

Например, Brasero по умолчанию использует этот каталог для хранения файла образа CD / DVD, размер которого может составлять 4,7 ГБ. Не стоит рисковать серьезным замедлением (или блокировкой системы) в ситуации нехватки памяти, если ваша память и своп заполнены.

Для опытных пользователей нет проблем изменить настройки некоторых приложений по умолчанию и смонтировать их /tmpкак tmpfs. Для общего использования это просто не стоит риска, я думаю.


1
И, я думаю, вы могли бы немного рассердиться и проклинать разработчиков, если вы записали несколько великолепных скринкастов, а затем, после отключения питания или сбоя системы, потеряли их всех. ;)
устроить

А содержимое / tmp может даже находиться в оперативной памяти и никогда не трогать диск, если вы используете ext4.
LasseValentini

@Fraekkert: Что ты имеешь в виду? Почему ext4? Почему никогда? Можете ли вы уточнить, пожалуйста?
устроить

1
Это не уникально для ext4, но это из-за отложенного размещения . По сути, это означает, что файлы не обязательно записываются на диск только потому, что программа сообщает операционной системе об этом. Вместо этого это хранится в оперативной памяти для быстрого доступа. Если после этого файл будет удален относительно быстро, он никогда не попадет на диск. Посмотрите Википедию, если вам нужно больше информации.
ЛассеВалентини

1
Для справки, вот комментарий, подробно объясняющий тему 5/30
lxgr

10

Как насчет сжатия Zram?

Доступное пространство более 256 Мбайт, это зависит от типа файлов.

modprobe zram num_devices=1 
# max ram usage = 256 Mbytes
echo 262144 > /sys/block/zram0/disksize
mke2fs -q -m 0 -b 4096 -O sparse_super -L zram /dev/zram0
mount -o relatime,noexec,nosuid /dev/zram0 /tmp

На самом деле это довольно интересная идея ... попробую это :)
Piskvor

8

Была идея использовать tmpfs, когда на ней достаточно места, и записывать на диск, когда вам не хватает места: http://www.bigdbahead.com/?p=137 Однако, это никогда не происходило. Мне удалось заставить его работать, но накладные расходы FUSE сводят на нет все преимущества использования tmpfs: http://shnatsel.blogspot.com/2011/11/miniwheatfs-aka-reliable-ramdisks.html

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.