第19章 perf を再起動せずに perf コレクターを使用してトレースポイントを管理する方法


コントロールパイプインターフェイスを使用して、実行中の perf コレクターで異なるトレースポイントを有効化および無効化することで、perf を停止または再起動せずに、収集するデータを動的に調整できます。これにより、プロセスの停止または再起動中に記録されたはずのパフォーマンスデータが失われることはありません。

19.1. perf を停止または再起動せずに、実行中の perf コレクターにトレースポイントを追加する

制御パイプインターフェイスを使用して実行中の perf コレクターにトレースポイントを追加し、記録するデータを調整します。perf を停止する必要がないため、パフォーマンスデータが失われません。

前提条件

  • perf ユーザー空間ツールがインストールされている。詳細は、perf のインストール を参照してください。

手順

  1. 制御パイプインターフェイスを設定します。

    # mkfifo control ack perf.pipe
    Copy to Clipboard
  2. コントロールファイル設定と、有効にするイベントで perf record を実行します。

    # perf record --control=fifo:control,ack -D -1 --no-buffering -e 'sched:*' -o - > perf.pipe
    Copy to Clipboard

    この例では、-e オプションの後に 'sched:*' を宣言すると、スケジューラーイベントで perf record が開始されます。

  3. 2 つ目の端末で、制御パイプの読み取り側を起動します。

    # cat perf.pipe | perf --no-pager script -i -
    Copy to Clipboard
  4. コントロールパイプの読み取り側を起動すると、最初の端末で以下のメッセージがトリガーされます。

    Events disabled
    Copy to Clipboard
  5. 3 番目のターミナルで、制御ファイルを使用してトレースポイントを有効にします。

    # echo 'enable sched:sched_process_fork' > control
    Copy to Clipboard

    このコマンドは perf をトリガーし、宣言されたイベントについて制御ファイル内の現在のイベントリストをスキャンします。イベントが存在する場合は、トレースポイントが有効になり、次のメッセージが最初の端末に表示されます。

    event sched:sched_process_fork enabled
    Copy to Clipboard
  6. トレースポイントを有効にすると、2 番目のターミナルにトレースポイントを検出した perf からの出力が表示されます。

    bash 33349 [034] 149587.674295: sched:sched_process_fork: comm=bash pid=33349 child_comm=bash child_pid=34056
    Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat