GNU/Linux >> Znalost Linux >  >> Linux

Proč linuxové distribuce standardně nepřipojují tmpfs s nekonečnými inody?

Obvykle (např.:ext2 , ext3 , ext4 , ufs ), počet inodů, které může souborový systém pojmout, je nastaven při vytváření, takže to nemůže obejít žádná možnost připojení.

Některé souborové systémy jako xfs mít poměr prostoru používaného inody laditelný, takže jej lze kdykoli zvýšit.

Moderní systémy souborů jako ZFS nebo btrfs nemají žádné pevně zakódované omezení počtu souborů, které může souborový systém uložit, inody (nebo jejich ekvivalent) se vytvářejí na vyžádání.

Edit:zúžení odpovědi na aktualizovanou otázku.

S tmpfs , výchozí počet inodů je vypočítán tak, aby byl dostatečně velký pro většinu realistických případů použití. Jediná situace, kdy by toto nastavení nebylo optimální, by bylo, kdyby se na tmpfs vytvořilo velké množství prázdných souborů . Pokud jste v takovém případě, nejlepším postupem je upravit nr_inodes parametr na hodnotu dostatečně velkou na to, aby se vešly všechny soubory, ale nepoužívaly 0 (=neomezeně). tmpfs dokumentace uvádí, že by to nemělo být výchozí nastavení kvůli riziku vyčerpání paměti uživateli bez 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.

Vzhledem k faktu tmpfs však není jasné, jak k tomu mohlo dojít Využití RAM je ve výchozím nastavení omezeno na 50 % 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.

Mnoho lidí se bude více zajímat o výchozí velikost paměti na množství, které odpovídá požadavkům jejich aplikace.


Linux
  1. Proč linker Linux/gnu zvolil adresu 0x400000?

  2. Mohu zvýšit počet inodů v Linuxu?

  3. Proč je standardně nainstalován Perl u většiny distribucí Linuxu?

  1. Proč se držím xtermu

  2. Proč různé distribuce Linuxu potřebují záplatovat balíčky?

  3. Proč je na moderním Linuxu výchozí velikost zásobníku tak obrovská - 8 MB (u některých distribucí dokonce 10)

  1. Mají distribuce Linuxu stále význam s kontejnery?

  2. Proč jsem si zamiloval Antergos Linux

  3. Pochopte základy UNIX / Linux Inodes s příklady