Buon filesystem per / tmp?


31

Sto pensando di avere / tmp sulla sua stessa partizione ... quale sarebbe un buon filesystem con cui formattarlo?

Il motivo per cui lo chiedo è perché i dati archiviati in / tmp non sono permanenti, quindi non ho bisogno di journaling, un indice di fantasia o altro.

Risposte:


27

A volte trovo che passare /tmpa ram ( tmpfs) sia la soluzione migliore (specialmente nelle mie configurazioni che usano molta roba I / O ad alta intensità di disco - MySQL, ecc.) Se hai abbastanza RAM per alimentarla.


2
Ho 2 GB di RAM, quindi probabilmente non è un'opzione.
Nathan Osman,

2
In realtà questo dovrebbe essere un sacco di RAM. / tmp di solito non viene utilizzato che tanto con il normale utilizzo del sistema (qualunque cosa sia).
joschi,

3
tmpfs utilizzerà swap se necessario, quindi il tuo spazio di swap può fare il doppio dovere come / tmp, non è necessario allocare spazio extra.
gbroiles

@George Quanto grande vorresti creare la tua partizione / tmp?
Marco Ceppi

1
@George è una dimensione della partizione abbastanza grande per /tmp- sul mio desktop uso al meglio 12 MB, anche se sui miei server /tmpposso diventare pazzo quando i clienti fanno cose stupide in MySQL e nei linguaggi di scripting che fanno /tmpdiventare molto più grandi. La cosa geniale di tmpfs è che non toglierà solo 64 MB di RAM, ma è solo un soffitto duro. tmpfs si ridimensionerà man mano che sarà necessario più spazio, quindi consumerai in tmpfs solo ciò che è necessario in quel momento.
Marco Ceppi

25

Ci sono diverse buone scelte qui:

  1. tmpfs : è un filesystem che archivia i suoi file nella RAM. Questo non significa che il filesystem consumerà tutta la tua RAM. Invece prende solo la quantità di cui ha davvero bisogno. Di solito sono necessari solo alcuni MB. Se lo utilizzerai, aggiungi una riga come: none /tmp tmpfs size=64M,mode=1777 0 0alla tua /etc/fstab. È possibile modificare il sizein un valore che ti piace. Se si pensa ad un certo punto che è troppo poco, è possibile utilizzare mountper aumentare la dimensione: mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount. Le dimensioni verranno aumentate in posizione senza eliminare i file esistenti.
  2. ext2 / 3 : Nella tua domanda hai detto che non hai bisogno di funzioni fantasiose. Tuttavia consiglierei di usare un diario. Perché se usi ext2 e ne hai uno abbastanza grande /tmp, controllarlo richiederà del tempo. ext3 si avvia più velocemente in molti casi. Pertanto suggerirei l'uso del journaling.
  3. ext4 , reiserfs ecc .: alcuni software vengono utilizzati /tmpper archiviare grandi quantità di piccoli file. Quindi in alcuni casi non ci sono più blocchi liberi e il filesystem è pieno. ext4 e reiserfs memorizzano i file in modo diverso. Quindi potrebbe essere una buona scelta usare quelli per il tuo /tmp.

Se il tuo computer funziona a lungo, è una buona idea eliminare i file non utilizzati /tmp. tmpreaperè una soluzione che lo fa per te.

Comunque la mia prima scelta sarebbe usare tmpfs.


La prima opzione con / etc / fstab si applica anche usando systemd?
Smile4ever,

1
@ Smile4ever Sì-- /etc/fstabfa parte di util-linux, quindi sarà presente su qualsiasi sistema Linux indipendentemente dal sistema init in uso.
villapx,

7

Se non lo desideri, probabilmente consuma RAM, lo eseguo come ext2 . Non c'è motivo di mangiare il piccolo successo prestazionale del journaling per un filesystem di cui i dati non ti interessano (non dovrebbero interessarti) durante i riavvii.

In realtà, grattalo, probabilmente dovresti usare ext4 e disabilitare il suo journal, dovrebbe essere più veloce di ext2. Formattalo ext4 e incollalo fstabcon l'opzione mount data=writeback.


6

L'uso tmpfsdovrebbe andare bene per le tue esigenze, a condizione che tu abbia installato RAM adeguata .

Detto questo ... qualcosa che dovrebbe essere considerato riguardo all'uso di un ramdisk per /tmp(questo preso da un post più vecchio altrove ):

  • / Tmp dovrebbe trovarsi su un'area del disco reale o essere implementato fondamentalmente sull'area SWAP (o tmpfs)?

Quando è molto utilizzato, questa è una tentazione: "inseriremo / tmp in un disco RAM, accelererà l'accesso e quando il sistema si riavvierà / spegnerà, non c'è nulla da ripulire". Tuttavia, se stai pensando di implementare lo spazio temporaneo come un disco RAM che verrà scambiato, prenderei in considerazione le ramificazioni dell'utilizzo dello spazio di scambio del tuo sistema da parte di altri programmi. Se lo swap è presente come una forma di "overflow di emergenza" per quando il sistema è in gravi difficoltà e ne ha bisogno, l'ultima cosa di cui hai bisogno è avere lo spazio di swap consumato da un processo in fuga / tmp, consumando memoria, causando pressione sul Sottosistema VM da scambiare su disco. Tra attività di swap,seek()


5

L'uso di ext4 con opzioni di mount specifiche dovrebbe andare bene. Utilizzare le seguenti opzioni di montaggio:

barrier=0 : Significantly improves file write operations in some scenarios
noatime : Don't update file last access time, you don't need this on /tmp files and it should help with write operations performance.

aggiungi anche nodiratime
Weboide

noatime include nodiratime
zvolkov

3

Sono contento di ext4. Puoi giocare con alcune opzioni di mount se ti piace modificare o usare tmpfs se hai un sacco di RAM.


2

In risposta a quelli che chiedono perché vorresti una partizione / tmp separata, sono sicuro che ci sono molti motivi, come alcuni hanno già affermato, ma uno che trovo particolarmente rilevante oggi è che se stai eseguendo / su un SSD, vuoi minimizzare le scritture su quell'unità, quindi spostare / tmp è una buona idea poiché è un'area del filesystem che tende a cambiare molto.


0

Penso che tmpfs possa essere una pessima opzione perché di solito / tmp è scrivibile dal mondo, quindi chiunque può riempirlo e se si riempie occuperà tutta la tua memoria e il tuo server rallenterà


Penso che impostare una dimensione massima ragionevole per tmpfs e avere spazio di swap lo gestirà.
Olathe,
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.