ページキャッシュにアクセスすると、どのカーネル関数が呼び出されますか?

ページキャッシュにアクセスすると、どのカーネル関数が呼び出されますか?

私はアプリケーションがあり、そのページキャッシュヒット/ミス数を測定したいと思います。私が見つけたこのツールはキャッシュスタートと呼ばれます。作成者:Brendan Greggこのツールを使用して、4つの特定の機能(、、および)ftraceの数を計算して、ページキャッシュの訪問とページキャッシュの欠落の合計回数を確認します。詳細情報を確認できますmark_page_accessed()mark_buffer_dirty()add_to_page_cache_lru()account_page_dirtied()ここただし、デフォルトでは、総ページキャッシュの訪問回数とページキャッシュの欠落回数は、次のように計算できます。

総訪問回数 = 回数mark_page_accessed()-mark_buffer_dirty()
欠落回数 = 回数 add_to_page_cache_lru()- 欠落回数account_page_dirtied()

マイシステムで実行している場合(カーネルバージョン3.10と4.18の両方のシステムでテストされている場合)、ヒット率は負になります。何らかの理由で、他の2つの関数の数add_to_page_cache_lru()よりも数がmark_page_accessed()ほぼゼロに近いためです(毎回0〜10回呼び出されます)。 5秒、残りの2つの関数は数十万〜数百万回呼び出されます)

Brendanがこの記事で説明したようにワイヤー、異なるカーネルは、異なるカーネル機能を使用してページキャッシュにアクセス(または挿入)できます。ページキャッシュへのアクセス/欠落/ヒット時に呼び出される他の関数が何であるかを知ると、提供されたスクリプトを変更してコアで実行できると思いました。残念ながら、私はLinuxカーネルの機能についてほとんど知りませんでした。

ありがとうございます!

関連情報