GNU/Linux >> Linux Esercitazione >  >> Linux

Perché le distribuzioni Linux non montano di default tmpfs con inode infiniti?

Di solito (es:ext2 , ext3 , ext4 , ufs ), il numero di inode che un file system può contenere viene impostato al momento della creazione in modo che nessuna opzione di montaggio possa aggirarlo.

Alcuni filesystem come xfs avere il rapporto di spazio utilizzato dagli inode regolabile in modo che possa essere aumentato in qualsiasi momento.

File system moderni come ZFS o btrfs non hanno limitazioni hardcoded sul numero di file che un file system può memorizzare, gli inode (o il loro equivalente) vengono creati su richiesta.

Modifica:restringimento della risposta alla domanda aggiornata.

Con tmpfs , il numero predefinito di inode viene calcolato per essere sufficientemente grande per la maggior parte dei casi d'uso realistici. L'unica situazione in cui questa impostazione non sarebbe ottimale sarebbe se venisse creato un numero elevato di file vuoti su tmpfs . In tal caso, la migliore pratica è modificare il nr_inodes parametro su un valore abbastanza grande da contenere tutti i file ma non utilizzare 0 (=illimitato). tmpfs la documentazione afferma che questa non dovrebbe essere l'impostazione predefinita a causa del rischio di esaurimento della memoria da parte di utenti non root:

if nr_inodes=0, inodes will not be limited.  It is generally unwise to
mount with such options, since it allows any user with write access to
use up all the memory on the machine; but enhances the scalability of
that instance in a system with many cpus making intensive use of it.

Tuttavia, non è chiaro come ciò possa accadere dato il fatto tmpfs L'utilizzo della RAM è limitato per impostazione predefinita al 50% della RAM:

size:      The limit of allocated bytes for this tmpfs instance. The 
           default is half of your physical RAM without swap. If you
           oversize your tmpfs instances the machine will deadlock
           since the OOM handler will not be able to free that memory.

Molte persone saranno più preoccupate per la quantità predefinita di memoria a una quantità che corrisponda a ciò che richiede la loro applicazione.


Linux
  1. Comprendere le basi di UNIX / Linux Inodes con esempi

  2. Perché il linker Linux/gnu ha scelto l'indirizzo 0x400000?

  3. Perché eseguire un comando shell Linux con "&"?

  4. Perché i nomi utente Linux non possono iniziare con numeri?

  5. Perché diverse distribuzioni Linux devono applicare patch ai pacchetti?

XeroLinux:un bellissimo Linux basato su Arch con un'eccellente personalizzazione per impostazione predefinita

Proteggi la tua privacy online con queste distribuzioni Linux

Ripristina le impostazioni predefinite del desktop Linux con un solo comando

Montaggio e mappatura delle condivisioni tra Windows e Linux con Samba

Introduzione ai comandi di Pacman nelle distribuzioni Linux basate su Arch

Motivi per cui dovresti sostituire Windows con Linux Mint