いくつかの霧の記憶から、Linuxパーティションを作成するときのデフォルト設定を「改善」し、iノードサイズを1024に増やし、-O bigalloc
もオンにすると思いました(「このext4機能はクラスター化されたブロック割り当てを有効にします」)。
しかし、今では、ネット上で引用されているこれらの設定の具体的なメリットを見つけることができず、20%のディスク使用量ですでに15%のiノードを使用していることがわかります。
それで、単にパーティションを再フォーマットする必要がありますか、それとも検討する(または正当化として使用する)ポジティブなものがありますか?例えば。たくさんのファイルがあるディレクトリの場合?
大量のメタデータを含むファイルが多数ある場合は、より大きなiノードが役立ちます。最小のiノードサイズには、アクセス許可、タイムスタンプなどの従来のメタデータの余地があります。また、通常のファイルの場合は 数ブロックのアドレス 、または短いシンボリックリンクのターゲットもあります。 より大きなiノード 保存できます 拡張属性アクセス制御リスト や SELinuxコンテキスト など。 iノードに拡張属性用の十分なスペースがない場合は、それらを別のブロックに格納する必要があります。これにより、ファイルを開いたり、メタデータを読み取ったりするのが遅くなります。
したがって、複雑なACLなどの拡張属性を大量に使用することを計画している場合は、より大きなiノードサイズを使用する必要があります。または、SELinuxを使用している場合。 SELinuxは、より大きなiノードの主な動機です。
Iノードのサイズを大きくすると、ディスクの使用量を犠牲にして、非常に大きなファイル/ディレクトリのパフォーマンス(および場合によっては小さなファイルのパフォーマンス)に役立ちます。
Iノードあたりのバイト数の比率は、iノードの使用量が多すぎると感じた場合に詳しく調べたいものです。いくつかのStackExchangeサイトに関する多くの関連するQ&A。
20%のディスク使用量と15%のiノード使用量はそれほど悪くありません。 20%のディスク使用量と100%のiノード使用量が問題になります。問題は、100%のディスク使用量の前に100%のiノード使用量に到達するかどうかです。それはあなたがより多くのiノードを必要とするときです。
それはあなたがあなたのファイルシステムを使う方法に大きく依存します。たとえば、一定のサイズの写真やビデオ、または同様のファイルのみを保持するパーティションの場合、おそらく心配する必要はありません。
使用法がランダムであり、将来的にいくつかのカーネルソースtarballを抽出する可能性がある場合は、現在の比率が維持されない可能性があります...
パフォーマンスに関しては、24時間年中無休でホットなデータベースのように、わずかな最適化でも効果があるデータベースのように、限界を押し上げるアプリケーションがない限り、通常の状況では違いに気付かないでしょう。
各ファイルは消費することが保証されています 少なくとも 1 iノード、 ファイルが十分に大きくなった場合など。理論的には、パーティションが多数の大きなファイルで構成される場合、必要なiノードは少なくなります。 iノードが少ないということは、データ用のディスク容量が多いことを意味します。特定のアプリケーションは、データベースがいくつかの大きなファイル(Oracle、MySQLとinnodb)にほとんどのデータを保持するデータベースのパーティションです。 「bigalloc」と言うときは、CentOS7で/etc/mke2fs.conf
をinode_ratio
に設定する「big」などの32768
のプリセットの1つを意味していると思いますか?よくわかりませんが、基本的にはmke2fs
の-i
"bytes-per-inode"パラメーターのパラメーターだと思います。これらが正しい仮定である場合、はい、再フォーマットコピーが必要になります。
Iノードあたりのバイト数の比率が大きいほど、作成されるiノードは少なくなります。この値は通常、ファイルシステムのブロックサイズより小さくするべきではありません。その場合、これまでに使用できるよりも多くのiノードが作成されるためです。ファイルシステムの作成後にこの比率を変更することはできないことに注意してください。したがって、このパラメーターの正しい値を慎重に決定してください。ファイルシステムのサイズを変更すると、この比率を維持するためにiノードの数が変更されることに注意してください。