2012-03-16 7 views
19

Ho degli script che richiedono la creazione di centinaia di file temporanei di piccole successioni, piccoli e temporanei, che verranno letti molto presto, quindi scollegati./tmp vs./dev/shm per l'archiviazione di file temporanei su Linux?

Il mio test mostra poca o nessuna differenza di prestazioni inserendo i file in /tmp (su disco) o in /dev/shm (memoria condivisa a livello di file system) su Linux anche con carico moderato. Attribuisco questo alla cache del filesystem.

Concesso il disco sarà fine avere colpito con le azioni fileystem, ma su più piccoli file temporanei di scrittura-lettura, perché si (non) ha raccomandato /dev/shm over directory del disco-backed? Avete notato grandi aumenti delle prestazioni con la directory della memoria condivisa su un VFS memorizzato nella cache?

risposta

13

/dev/shm è inteso per uno scopo molto speciale, non per i file che devono essere inseriti da programmi arbitrari.

Al contrario, /tmp è exactly made for this. Sui miei sistemi, /tmp è un tmpfs, al contrario di /var/tmp che è designed per mettere file più grandi, potenzialmente di più.

+1

+1 '/ dev/shm' è un' tmpfs 'per tutti gli usi è un dettaglio di implementazione di Linux, non una garanzia in alcun modo (lo spazio disponibile di solito è comunque molto limitato). Usa '/ tmp' e'/var/tmp' per quello a cui erano destinati. E a seconda dell'utilizzo e del filesystem, se crei e scolleghi un file, è possibile che si trovi solo nella cache e non colpisca mai il disco. – ephemient

+0

@ephemient - un file crea e lo scollegamento immediato anche se alla fine la cache avrebbe colpito il disco, no? – Xailor

+1

@glglgl - Nei sistemi in cui stiamo implementando (in uno scenario di servizi gestiti)/tmp non è supportato da 'tmpfs' ma dal disco primario sda1. Altrimenti, accetterei di mantenere lo standard, ma questo è il nostro ambiente di distribuzione in questo momento. – Xailor

3

È essenzialmente lo stesso (shm è anche supportato implicitamente dal disco quando si ha uno scambio di file).

/tmp ha il vantaggio che si riempie di più (considerando che il disco rigido è probabilmente più grande del file di scambio). E inoltre è più ampiamente supportato.