B.9. Glock の統計

GFS2 ではファイルシステム内で何が起きているのか追跡する際に役立つ統計が維持されます。この統計を使用してパフォーマンス関連の問題を見つけることができます。
GFS2 では次の 2 つのカウンターが維持されます。
  • dcount。要求された DLM 操作の回数をカウントします。平均/分散の計算に使用されたデータの量を示します。
  • qcount。要求された syscall レベル操作の回数をカウントします。一般的に、qcount の数は dcount 以上になります。
また、GFS2 では 3 つの平均/分散の組み合わせが維持されます。平均/分散の組み合わせは平滑化指数関数推定値であり、使用されるアルゴリズムはネットワークコードで往復時間の計算に使用されるアルゴリズムです。GFS2 で維持される平均と分散の組み合わせはスケーリングされず、整数のナノ秒単位で表されます。
  • srtt/srttvar: ブロック以外の動作の平滑化往復時間
  • srttb/srttvarb: ブロック動作の平滑化往復時間
  • irtt/irttvar: 内部要求時間 (例: DLM 要求間の時間)
ブロック以外の要求とは該当の DLM ロックの状態に関係なく直ちに完了する要求を指します。現在、(a) ロックの最新状態が排他的な場合の要求、(b) 要求された状態が null または unlocked のいずれかの場合の要求、(c) "try lock" フラグが設定されている場合の要求がブロック以外の要求に該当します。これ以外のすべての要求はブロック要求になります。
IRTT の場合は時間がかかる方がパフォーマンス関連の問題が発生する可能性が少なく、RTT の場合は時間が短い方がその可能性が少ないということになります。
統計は次の 2 つの sysfs ファイルに格納されます。
  • glstats ファイル。1 行に 1 つの glock の統計値が格納される点以外は glocks ファイルと同じです。作成される glock の glock タイプの「per cpu」データでデータの初期化が行われます (ゼロとなるカウンターとは別)。このファイルは非常に大きくなる場合があります。
  • lkstats ファイル。各 glock タイプの「1 cpu あたり」の統計値が含まれます。1 行あたり 1 つの統計が示され、各列は 1 cpu コアを示します。1 つの glock タイプは 8 行で示されます。