Sposta / tmp su RAM


16

Sto cercando di passare /tmpalla RAM e obbedire alle buone pratiche:

  • /var/tmpNON deve essere inserito tmpfs, poiché deve sopravvivere ai riavvii

  • non montare /tmpcome stand-alone tmpfs, ma fare affidamento su /dev/shmo/run/shm

Tuttavia, le cose sono cambiate tra i kernel 2.6 e 3.2:

Modifiche alla configurazione e ai valori predefiniti dei filesystem tmpfs

Sul kernel 3.2, usare RAMTMP=yesin /etc/default/tmpfs.

La mia domanda è: come posso raggiungere questo obiettivo con i kernel più vecchi?

La mia scelta è di non modificare / etc / fstab né questo:

mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp

C'è qualcosa come RAMTMPper i kernel 2.6?


1
tmpfsconsiderato dannoso . Cibo per la mente.
sabato

8
@sr_ Siamo spiacenti, non sono molto d'accordo con l'articolo collegato. /tmppuò e deve essere usato per file temporanei, questo è il punto. /tmpnon dovrebbe sopravvivere a un riavvio (usare /var/tmpper quello) e chi compone un messaggio e-mail della metà di RAM + swap (senza salvarlo)?
Marco,

@Marco certo, stavo solo lanciando qualcosa che pensavo fosse correlato.
sabato

Risposte:


19

Non devi fare tutto ciò, puoi semplicemente montare /tmpcome tmpfsusando una linea come la seguente in /etc/fstab:

tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0

Puoi anche farlo dal vivo (ma tieni presente che /tmpnon è possibile accedere alle cose che sono attualmente nel tuo file system corrente se non tramite l'inode e i descrittori di file attualmente aperti, quindi dovresti davvero farlo modificando /etc/fstabe riavviando):

mount -o mode=1777,nosuid,nodev -t tmpfs tmpfs /tmp

Si noti che a tmpfspuò scambiare. Se vuoi un filesystem veramente solo RAM, usa ramfs.


Chris, il mio punto è "buone pratiche". Gli sviluppatori hanno messo il supporto nativo per mount / tmp su ... / shm; Ho letto che è meglio riutilizzare gli stessi tmpfs.
Massimo

3
@Massimo La mia opinione è che la migliore pratica non è quella di legare mount. Aggiunge complessità inutili.
Chris Down,

5
@Massimo Dove trovi queste 'best practice'? L'unica ragione che posso vedere contro il montaggio /tmpcome tmpfs è perché ora hai 2 potenziali filesystem tmpfs che possono riempire e usare più memoria ( /tmpe /dev/shm). Ma se sei davvero preoccupato di riempire 2 supporti tmpfs, puoi ridurre la dimensione massima del montaggio tmpfs.
Patrick,

@ChrisDown cosa c'è di male nel bind mount? Anche avere un singolo tmpfs potrebbe semplificare le cose, giusto?
CMCDragonkai,

2
@CMCDragonkai I montaggi Bind sono tutt'altro che semplici internamente, vengono forniti con alcuni avvertimenti poco intuitivi che probabilmente non intendi (uno particolarmente pubblicizzato è il dramma circostante che richiede il rimontaggio per i montaggi di sola lettura). Basta usare due tmpfssupporti invece.
Chris Down,

17

/etc/default/tmpfsè per sysvinit, per systemd(Debian default da jessie) devi solo fare:

systemctl enable tmp.mount

e su Debian Stretch

cp /usr/share/systemd/tmp.mount /etc/systemd/system/
systemctl enable tmp.mount

vedi il registro delle modifiche su https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787542#74


Grazie! Questo è il modo giusto di spostare / tmp in tmpfs in Jessie.
Yasiru G,

grazie mille! su gentoo non ho capito perché il mio / tmp è montato tmpfs. lo script systemd tmp.mount lo fa.
UFK

4

So che questo è piuttosto vecchio ma nelle impostazioni delle distribuzioni di tipo Debian Impostare RAMTMP, RAMRUN e RAMLOCK in / etc / default / tmpfs (/ etc / default / rcS o prima di wheezy) fa lo stesso lavoro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.