TMPFS File System di memoria virtuale in Linux

TMPFS File System di memoria virtuale in Linux
Tmpfs, precedentemente noto come shmfs, è un file system temporaneo e si riferisce a un file system che si trova in memoria e/o nelle partizioni di swap. TMPFS non archivia i dati del file su archiviazione normale e non volatile. Invece, il kernel unix gestisce la memoria virtuale, che è dove vivono i file TMPFS.Il motivo principale per cui è stato creato TMPFS era migliorare le prestazioni lasciando che i file temporanei fossero scritti e letti senza utilizzare il disco o la rete I/O.

Di cosa parleremo?

In questo articolo, vedremo una panoramica del file system TMPFS in Linux.

Vantaggi dell'utilizzo del sistema TMPFS

L'ex file system di memoria di accesso casuale (RAMFS) in Linux è stato sostituito con il nuovo file system temporaneo (TMPFS). Questo perché i vecchi Ramf non si sono rivolti correttamente alle situazioni quando il sistema ha esaurito la RAM.

Le directory di montaggio come TMPFS hanno diversi vantaggi come:

1. Per accelerare l'accesso ai file al loro interno.

2. Per assicurarsi che ogni volta che il sistema si riavvia, i contenuti delle directory vengono eliminati automaticamente.

3. TMPFS aumenta il tasso di manipolazione dei file mentre preserva la semantica di un file UNIX.

4. TMPFS non ha bisogno dello spazio su disco fisso o dedicato per i file e non ha effetti negativi sulle prestazioni.

Invece di utilizzare la memoria fisica dedicata come un "disco RAM", TMPFS memorizza i dati del file nella cache della pagina di un sistema operativo. Semplifica la lettura e la scrittura dei file, consente al file system di crescere e si restringe al volo senza usare alcun spazio su disco e non danneggia le prestazioni complessive del sistema.

TMPF di montaggio

Utilizzare il comando Mount e scegliere "TMP" come tipo di file system per creare un file system del tipo TMPFS. Poiché TMPFS utilizza sempre la memoria come risorsa del file system, il parametro delle risorse su (E.G. dispositivo grezzo) viene ignorato. Poiché TMPFS utilizza sempre la memoria come risorsa del file system, il parametro delle risorse per il montaggio (come il dispositivo RAW) non viene preso in considerazione.

Attualmente, TMPFS non ha opzioni di montaggio. Molte opzioni di montaggio regolari non sono rilevanti per il contesto di TMPFS. Ad esempio, fare in modo che un monte TMPFS "solo lettura" non abbia senso poiché non detengono alcun dato quando sono montati per la prima volta. TMPFS supporta tutti i tipi di file, che includono anche file di dispositivi speciali SymLink, blocchi e caratteri - Semantica dei file UNIX. Sebbene possano esserci molti file system basati su TMPF che sono montati su un sistema, tutti devono condividere lo stesso pool di risorse.

Poiché il contenuto di un file system basato sulla memoria viene cancellato dopo un riavvio del sistema o non montare e perché questi file hanno una vita molto breve, /tmp is il luogo più adatto per loro (così noto come TMPFS). Questo lo indica /USR/TMP non è una posizione appropriata per il montaggio di un file system TMPFS perché i suoi contenuti sono trattenuti tra i riavvii.

Dimensione di TMPFS

La quantità di spazio libero che può essere utilizzato da TMPFS è direttamente proporzionale alla quantità di spazio di swap inutilizzato. La dimensione di un file system TMPFS si espande per adattarsi ai file ad esso aggiunti, ma gli utenti che utilizzano regolarmente TMPF devono essere consapevoli del fatto che questa crescita comporta alcuni costi intrinseci. TMPFS condivide le sue risorse con i dati e gli stack di programmi che vengono eseguiti.

Se i file system TMPFS sono vicini alla loro massima capacità consentita, è possibile che l'esecuzione di programmi molto grandi sia influenzato. TMPFS può assegnare tutto lo spazio di scambio del sistema, ad eccezione di 4 MB. Questo è sufficiente per assicurarsi che la maggior parte dei programmi possa eseguire. Tuttavia, è possibile che alcuni programmi non siano in grado di eseguire se i file system TMPFS sono vicini alla piena capacità. Gli utenti che prevedono di eseguire i programmi di grandi dimensioni e utilizzano ampiamente TMPFS dovrebbero cercare modi per aumentare lo spazio di swap disponibile nel sistema.

Usi di TMPFS

Gli usi dei TMPF includono:

1. C'è sempre un supporto interno nel kernel che non può essere visto. Memoria condivisa SYSV e mapping anonimi condivisi utilizzano entrambi i TMPFS. TMPFS Mount è indipendente da config_tmpfs. La parte visibile dall'utente di TMPFS non verrà creata se config_tmpfs non è impostata. Tuttavia, esistono sempre meccanismi interni.

2. Memoria condivisa POSIX (shm_open, shm_unlink) richiede che TMPFS vengano montati su /dev /shm per versioni GLIBC 2.2 e sopra. Questo può essere risolto includendo la seguente riga nel file /etc /fstab:

tmpfs /dev /shm tmpfs impostazioni predefinite 0 0

Se necessario, crea la directory in cui si desidera montare i TMPF.

La memoria condivisa utilizzata da SYSV non ha bisogno del supporto TMPFS. Questo viene fatto con il supporto interno. Per utilizzare la memoria condivisa SYSV nel 2.3 versioni del kernel, SHM FS (il predecessore di TMPF) doveva essere montato.

3. È davvero utile per alcuni utenti montare in luoghi come /TMP E /var/tmp e avere un disco di swap considerevole. Inoltre, i supporti del ciclo dei file TMPFS sono ora funzionali. Pertanto, la maggior parte delle distribuzioni Mkinitrd dovrebbe operare con un TMPFS.

4. E ce ne sono troppi da elencare.

Opzioni di montaggio per TMPFS

Esploriamo alcune delle opzioni di montaggio con TMPFS:

misurare: Ciò specifica il numero massimo di byte che possono essere utilizzati per un'istanza TMPFS. Per impostazione predefinita, solo la metà della RAM fisica può essere utilizzata senza spazio di scambio.

Se le istanze TMPFS sono rese più grandi di quanto devono essere, la macchina rimane bloccata in una situazione di stallo perché il gestore OOM non sarà in grado di liberare quella memoria.

Blocchi NR: È lo stesso dell'opzione di dimensioni. Tuttavia, è nei blocchi di PAGE_CACHE_SIZE.

NR inodi: È il limite superiore degli inodi per questa istanza. Il valore predefinito è la metà del numero di pagine di RAM fisica o il numero di pagine di RAM LowMem (su un sistema con HighMEM), a seconda di quale sia meno.

Conclusione

Normalmente, i file TMPFS vengono eliminati attraverso il riavvio del sistema. Ma se vuoi preservarli, puoi usare SystemD-TMPFiles. Ti consigliamo di leggere le pagine dell'uomo se vuoi saperne di più su TMPFS.