Dlaczego / tmp nie używa tmpfs?

17

Mam dużo pamięci RAM i używam bardzo mało. Nagrywam też niektóre screencasty gtk-recordmydesktop, które domyślnie zapisują się /tmppodczas nagrywania. Zakładałem, że oznaczałoby to przechowywanie w pamięci RAM tak dużo, jak to możliwe, ale tak naprawdę sprawdziłem i stwierdziłem, że /tmpnie jest zamontowany z tmpfs. Dlaczego?

Jo-Erlend Schinstad
źródło
Zobacz ten raport o błędach .
jarno

Odpowiedzi:

16

Myślę, że odpowiedziałeś na własne pytanie. Wiele programów używa /tmpdo przechowywania plików tymczasowych i mogą być ogromne.

Na przykład Brasero domyślnie zapisuje w tym katalogu plik obrazu płyty CD / DVD, który może mieć rozmiar 4,7 GB. Nie warto ryzykować poważnego spowolnienia (lub blokady systemu) w sytuacji braku pamięci, jeśli pamięć RAM i swap zostaną zapełnione.

Zaawansowanym użytkownikom nie ma problemu zmienić domyślne ustawienia niektórych aplikacji i zamontować /tmpjako tmpfs. Chyba do ogólnego użytku po prostu nie warto ryzykować.

zorganizować
źródło
1
I myślę, że możesz się trochę rozgniewać i przekląć twórców, jeśli nagrałeś kilka świetnych screencastów, a następnie, po awarii zasilania lub awarii systemu, straciłeś je wszystkie. ;)
umów się
A rzeczy w / tmp mogą nawet znajdować się w pamięci RAM i nigdy nie dotykać dysku, jeśli używasz ext4.
LasseValentini,
@Fraekkert: Co masz na myśli? Dlaczego ext4? Dlaczego nigdy Czy możesz opracować proszę?
umów się
1
Nie jest to unikalne dla ext4, ale wynika to z opóźnionego przydzielania . Zasadniczo oznacza to, że pliki niekoniecznie są zapisywane na dysk tylko dlatego, że program każe to zrobić. Zamiast tego jest przechowywany w pamięci RAM dla szybkiego dostępu. Jeśli plik zostanie następnie stosunkowo szybko usunięty, nigdy nie dotrze do dysku. Zajrzyj na wikipedię, jeśli potrzebujesz więcej informacji.
LasseValentini
1
Dla odniesienia, oto komentarz wyjaśniający szczegółowo temat 5/30 sekund: bugs.launchpad.net/ubuntu/+source/linux/+bug/317781/comments/45
lxgr
10

Co z kompresją zram?

Dostępna przestrzeń to ponad 256 MB, zależy to od typu plików.

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
Massimo
źródło
To naprawdę ciekawy pomysł ... wypróbuje to :)
Piskvor