検索

2.9.3. GFS2 ロックダンプを使用した GFS2 パフォーマンスのトラブルシューティング

download PDF
GFS2 キャシングの使用効率が悪いためにクラスターのパフォーマンスが影響を受けている場合、I/O の待機時間が長く延長される可能性があります。GFS2 のロックダンプ情報を利用すると、この問題の原因を究明することができます。
本セクションには、GFS2 ロックダンプの概要を記載しています。GFS2 ロックダンプについての詳しい説明は、付録C GFS2 トレースポイントおよび debugfs glocks ファイル を参照してください。
GFS2 ロックダンプ情報は debugfs ファイルから収集することができます。このファイルのパス名は以下のとおりです (debugfs/sys/kernel/debug/ にマウントされていることが前提です)。
/sys/kernel/debug/gfs2/fsname/glocks
ファイルの内容は、一連の行から構成されています。G: で始まる行は、それぞれひとつの glock を表し、その下の 1 文字分字下げしてある行はファイル内の直前の行の glock に関連する情報アイテムを表しています。
debugfs ファイルの最適な使用方法は、アプリケーションに問題の発生中に cat コマンドを使ってファイルの全内容のコピーをとり (RAM が大容量で、かつキャッシュされた inode が多数ある場合には長時間がかかる可能性があります)、後日に結果データを確認する方法です。

注記

debugfs ファイルのコピーは 2 つ取っておくと役立つ場合があります。その際、2 つ目のコピーは、最初のコピーから数秒または数分遅らせます。同じ glock 番号に関連する 2 つのトレースでホルダー情報を比較すると、作業負荷が進行しているか (つまり、単なる速度低下)、スタックしているか (その場合は必ずバグなので、Red Hat サポートに直ちに報告する必要があり) を見極めることができます。
debugfs ファイルの H: (ホルダー) で始まる行は、承認済みまたは承認待機中のロック要求を表します。ホルダー行のフラグフィールド f: には、待機中の要求を示す「W」フラグ、または承認済み要求を示す「H」フラグが表示されます。待機中の要求が多数ある glocks は特定の競合が発生している可能性が高くなります。
表2.1「glock フラグ」 では各 glock フラグが示す意味を説明しています。表2.2「Glock ホルダーフラグ」 では各 glock ホルダーフラグが示す意味を glock ダンプに出現する順序で説明しています。
表2.1 glock フラグ
フラグ名前意味
bBlockingロックのフラグがセットされていると有効、DLM から要求された動作はブロックされる可能性があるという意味、(このフラグは降格の動作や「try」ロックでクリアになります。他のノードによるロック降格に要される時間とは別に DLM 応答時間の統計データを収集することがフラグの目的です。)
dPending demote遅延 (リモートの) 降格の要求
DDemote降格要求 (ローカルまたはリモート)
fLog flushこの glock を解放する前にログのコミットが必要
FFrozenリモートノードからの返信を無視 - 復元の進行中、(異なるメカニズムを使用するファイルシステムのフリーズとは関係ありません。復元中にしか使用されません。)
iInvalidate in progressこの glock のページの無効化が進行中
IInitialDLM がこの glock に関連付けられるとセットされる
lLockedglock は状態を変更中
LLRULRU 一覧に glock が記載されるとセットされる
oObjectglock がオブジェクトに関連付けられるとセットされる (type 2 glock の場合 inode、type 3 glock の場合リソースグループ)
pDemote in progressglock は降格要求に応答中
qQueuedglock に対してホルダーがキュー待ちになるとセットされる、glock が行われキュー待ちのホルダーがなくなると消去される、(glock 維持の最小時間を計算するアルゴリズムの一部として使用されます。)
rReply pendingリモートノードから受信した返信の処理の待機中
yDirtyこの glock を解放する前にディスクへのデータのフラッシュが必要
表2.2 Glock ホルダーフラグ
フラグ名前意味
aAsyncglock の結果を待たない (結果を後でポールします)
AAny互換性のあるロックモードはすべて受け入れ可能
cNo cacheロック解除時に DLM ロックを即時降格
eNo expire後続のロック取り消し要求を無視
Eexact完全一致するロックモード
FFirstこのロックにホルダーを最初に付与する必要がある場合にセットされる
HHolder要求したロックが付与されたことを示す
pPriorityキューの先頭にある待機ホルダー
tTry「try」ロック
TTry 1CBコールバックを送信する「try」ロック
WWait要求完了の待機中にセットされる
問題の原因となっている glock を特定したら、次はそれに関連している inode を見つけます。これは、glock 番号 (G: 行にある n:) に示されています。 type/number の形式で記載されており、type が 2 の場合は glock は inode glock で number は inode 番号になります。 find -inum number のコマンドを実行すると、inode をトラッキングすることができます。glocks ファイルにある 16 進形式から 10 進形式に変換した inode 番号が number になります。

注記

ロック競合が発生している時にファイルシステムで find を実行すると事態が悪化する可能性が高くなります。競合している inode を検索する場合は、まず先にアプリケーションを停止してから find を実行してください。
表2.3「glock のタイプ」 には、異なる glock のタイプの意味をまとめています。
表2.3 glock のタイプ
タイプ番号ロックタイプ用途
1Transトランザクションのロック
2InodeInode のメタデータとデータ
3Rgrpリソースグループのメタデータ
4Metaスーパーブロック
5Iopen最後に inode をクローズしたプロセスの検出
6Flockflock(2) syscall
8Quotaクォータ操作
9Journalジャーナルミューテックス
特定された glock が異なるタイプだった場合に、最も可能性が高いのはタイプ 3: (リソースグループ) です。通常の負荷時に別のタイプの glock を待機しているプロセスを多数確認した場合は、Red Hat サポートにご報告ください。
リソースグループロックで数多くの待機要求が待ち行列に入っている場合は、複数の理由が考えられます。 その一つとして、ノード数がファイルシステム内のリソースグループ数に比べて多い場合があります。 また、ファイルシステムがほぼ完全に満杯の場合も考えられます (空きブロックの検索に大抵時間がかかる)。いずれの場合も、ストレージを追加した上で gfs2_grow コマンドを使ってファイルシステムを拡張することで改善することができます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.