4.4. 競合ユーザースペースのロックの特定
このセクションでは、特定期間におけるシステムを通した競合ユーザースペースのロックを特定する方法を説明します。競合ユーザースペースのロックの特定は、
futex
競合が原因と疑われるハングの調査に役立ちます。
簡単に説明すると、複数のプロセスがメモリーの同じ領域にアクセスしようとすると、
futex
競合が発生します。場合によっては、これは競合しているプロセス間のデッドロックになり、アプリケーションがハングしているように見えます。
これを特定するために、例4.34「futexes.stp」 では
futex
システムコールをプローブします。
例4.34 futexes.stp
例4.34「futexes.stp」 は手動で停止する必要があります。終了時には以下の情報が出力されます。
- 競合の原因となったプロセスの名前と ID
- 競合対象となったメモリー領域
- メモリー領域が競合された回数
- プローブ中の競合の平均時間
例4.35「例4.34「futexes.stp」 出力サンプル」 には、スクリプトの終了時 (約 20 秒後) に 例4.34「futexes.stp」 の出力の抜粋が含まれます。
例4.35 例4.34「futexes.stp」 出力サンプル