第19章 perf 循環バッファーを使用したパフォーマンスのボトルネックとなっているプロセスの監視
perf ツールを使用すると、イベント固有のデータスナップショットを取得する循環バッファーを作成できます。これらを使用して、システム上で実行されている特定のプロセスやアプリケーションの一部におけるパフォーマンスのボトルネックを監視します。
このような場合には、perf は、指定されたイベントが検出されると、後で分析するために perf.data ファイルにデータのみを書き込みます。
19.1. perf を使用した循環バッファーおよびイベント固有のスナップショット リンクのコピーリンクがクリップボードにコピーされました!
特定のイベントが発生する前に何時間分もの perf データを記録することは、過剰なオーバーヘッドが発生したり、あるいは分析自体が非現実的なものになったりする可能性があります。このような場合は、perf record を使用して、特定のイベントの後にスナップショットを取得するカスタムの循環バッファーを作成します。
--overwrite オプションを指定すると、perf record はすべてのデータを上書き可能な循環バッファーに保存します。バッファーがいっぱいになると、perf record は最も古いレコードを自動的に上書きします。そのため、上書きされたレコードが perf.data ファイルに書き込まれることはありません。
--overwrite オプションと --switch-output-event オプションを併用すると、循環バッファーが設定されます。--switch-output-event トリガーイベントを検出するまで、データを継続的に記録およびダンプします。トリガーは、イベント発生後に循環バッファーから perf.data ファイルにデータを書き込むように perf record に指示します。これは、関連情報のみを perf.data ファイルに書き込むことでオーバーヘッドを削減しつつ、特定のデータを収集します。