web-dev-qa-db-ja.com

iノードキャッシュ用のLinuxキャッシュ設定の調整

私はファイルシステム内の1億個のファイル(多くのサブディレクトリに分散)を扱っており、特にそれらを効率的にrsyncするために、それらを非常に迅速にリストできるようにする必要があります。

一方、ファイルの実際のコンテンツをキャッシュに保持する必要はありません。

私は常にファイルの追加と削除を行っていますが、頻繁ではありません(毎秒10回程度)。

OS(2.6.18-194.el5)に利用可能な24GBを使用するように指示する方法はありますかRAMファイルキャッシングよりもiノードキャッシングの方が多いですか?私はすでに/ proc/etcを見ました/ vm/vfs_cache_pressureですが、私が探しているものとは正確には一致しないようです...

6
john.doe

vfs_cache_pressureの値を下げてみませんか? / proc/sys/vm/*のドキュメント によると、これはあなたが望むことをするはずです:

vfs_cache_pressure

このパーセンテージ値は、ディレクトリおよびiノードオブジェクトのキャッシュに使用されるメモリを再利用するカーネルの傾向を制御します。

デフォルト値のvfs_cache_pressure = 100では、カーネルはページキャッシュとスワップキャッシュの再利用に関して「公正な」速度でデントとiノードを再利用しようとします。 vfs_cache_pressureを減らすと、カーネルはdentryキャッシュとinodeキャッシュを保持することを優先します。 vfs_cache_pressure = 0の場合、メモリの負荷が原因でカーネルがデントとiノードを再利用することはありません。これにより、メモリ不足状態が発生しやすくなります。 vfs_cache_pressureを100を超えて増やすと、カーネルはデントとiノードを再利用することを優先します。

Vfs_cache_pressureを100を大幅に超えて増加させると、パフォーマンスに悪影響を及ぼす可能性があります。再利用コードは、解放可能なディレクトリおよびiノードオブジェクトを見つけるためにさまざまなロックをかける必要があります。 vfs_cache_pressure = 1000を使用すると、解放可能なオブジェクトが10倍多く検索されます。

4
seeker

これらの2つのコマンドを使用して、同じジョブを実行できます。

Updatedb(ドライブ全体のファイルとフォルダーの場所のリストを更新するため)

/を見つけます(OS全体のすべてのファイルを一覧表示します。これにより、データベースからファイルを取得するときに高速になります)。

2
Farhan