Red Hat Enterprise Linux で dentry_cache/dentry スラブキャッシュのサイズが増加し続ける
Issue
- アプリケーションが、一意の名前のファイルを大量 (約 15,000 個/時) に作成します。これらのファイルは一定時間後に削除されます。
- 常に約 5000 個のファイルしか存在しません。
- free で報告されるメモリー使用量が非常に多くなります。
- 調査の結果、使用量増加の原因は、dentry 構造のカーネルメモリースラブキャッシュ (RHEL4 または RHEL5 では
dentry_cache
、RHEL6 または RHEL7 ではdentry
と呼ばれます) であることが判明しました。 - 利用可能な (キャッシュ済み/空き) メモリーを dentry_cache が使い果たすとどうなりますか?
- ファイルの削除後に dentry オブジェクトが解放されないのはなぜですか? プロセスの所有者ですか? java の delete メソッドのためのゴミ箱 (非表示) が存在する可能性がありますか?
- vfs_cache_pressure の詳細を説明してください。
- dentry_cache サイズを減らすために他に何ができるでしょうか?
- vm.drop_caches=2 は使用できますか? 別の推奨される方法はありますか? その方法はどれくらい安全ですか? cron ジョブで実行できますか?
Environment
- Red Hat Enterprise Linux 4
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.