私は、作成時に使用する--max-obj-size値の関連する意味をすべて理解しようとしています。s3qlファイル システム。このオプションの影響についての完全な説明はまだ見つかっていませんが、ドキュメントとディスカッション グループからいくつかの情報を集めることができました。
主に、より大きな --max-obj-size 値を使用する理由が見つかりました。そこで、なぜ任意の大きな値 (10 MB? 100 MB? 1 GB?) を使用しないのか疑問に思います。
- 値が小さいほど、より多くの「inode」が使用され、sqlite データベースのパフォーマンスが低下します (同じ数のファイルにはより多くの inode エントリが必要になるため)。
- 値が小さいとスループットが低下する可能性があります(特にシーケンシャル読み取り)。
バージョン1.8から変更履歴:
実際のところ、S3QLのブロックサイズが小さいとない多数の小さなファイルを保存する場合、大きなブロック サイズよりも利点はありません。ただし、小さなブロック サイズでは、大きなファイルを保存するときにパフォーマンスが大幅に低下します。これは、S3QL が事実上動的なブロック サイズを使用しており、--blocksize 値がパフォーマンス的に上限を指定するためです。
これまでのところ、ブロック サイズを小さくすることで私が見つけた、または想像した唯一の利点は次のとおりです。
- ファイルの一部を書き換えるために使用される帯域幅が少なくなる
- 重複排除の改善の可能性
--min-obj-size オプションは重複排除には影響しません。重複排除はブロックがグループ化される前に行われます。
--max-obj-size はブロックの最大サイズを暗黙的に決定するため、重複排除に影響します。
見つかったここ:
s3ql ファイル システムを作成するときに、より大きな --max-obj-size またはより小さな --max-obj-size を選択した場合のトレードオフの概要を教えていただけますか?