GNU/Linux >> Linux の 問題 >  >> Linux

Linux ディストリビューションがデフォルトで tmpfs を無限 inode にマウントしないのはなぜですか?

通常 (例:ext2ext3ext4ufs )、ファイル システムが保持できる inode の数は作成時に設定されるため、マウント オプションで回避することはできません。

xfs のようないくつかのファイルシステム いつでも増加できるように、inode によって使用されるスペースの比率を調整可能にします。

ZFS のような最新のファイル システム または btrfs ファイル システムに格納できるファイル数にハードコーディングされた制限はなく、inode (または同等のもの) はオンデマンドで作成されます。

編集:更新された質問への回答を絞り込みます。

tmpfs で の場合、inode のデフォルト数は、ほとんどの現実的なユース ケースに十分な大きさになるように計算されます。この設定が最適でない唯一の状況は、多数の空のファイルが tmpfs で作成された場合です。 .その場合、ベストプラクティスは nr_inodes を調整することです 0 を使用せずに、すべてのファイルが収まるのに十分な大きさの値にパラメータを設定します (=無制限)。 tmpfs ドキュメントには、ルート以外のユーザーによるメモリ不足のリスクがあるため、これをデフォルト設定にすべきではないと記載されています:

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.

ただし、tmpfs という事実を考えると、これがどのように発生するかは不明です RAM の使用量は、デフォルトで RAM の 50% に制限されています:

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.

多くの人は、デフォルトのメモリ量をアプリケーションの要求に一致する量にすることについて、より心配するでしょう.


Linux
  1. 例を使用して UNIX / Linux の i ノードの基本を理解する

  2. 「&」を使用して Linux シェル コマンドを実行するのはなぜですか?

  3. Linux で inode 数を増やすことはできますか?

  1. BCRYPT - Linux ディストリビューションがデフォルトで使用しないのはなぜですか?

  2. Linux のユーザー名を数字で始めてはいけないのはなぜですか?

  3. 最近の Linux では、デフォルトのスタック サイズが 8 MB (一部のディストリビューションでは 10 MB) と非常に大きいのはなぜですか?

  1. xtermを使い続ける理由

  2. Linuxディストリビューションはまだコンテナーで重要ですか?

  3. AntergosLinuxに恋をした理由