私はアプリケーションがあり、そのページキャッシュヒット/ミス数を測定したいと思います。私が見つけたこのツールはキャッシュスタートと呼ばれます。作成者: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カーネルの機能についてほとんど知りませんでした。
ありがとうございます!