GNU/Linux >> Linux の 問題 >  >> Linux

perf を使用して raw イベント カウンターを監視する

わかりました、それで私はそれを理解したと思います.

私が使用している Intel マシンの場合、フォーマットは次のとおりです:<umask><eventselector> どちらも 16 進数値です。 umask の先頭のゼロは削除できますが、イベント セレクタでは削除できません。

イベント 0xB0 の場合 マスク 0x01 で 電話できます:

perf record -e r1B0 ./mytestapp someargs

perf カーネル コード (ここにカーネル ハッカーはいますか?) でそれの正確な解析を見つけることができませんでしたが、次のソースを見つけました:

  • c't マガジン 13/03 で生イベントを使用した perf の使用に関する説明 (購読が必要)。Intel Architecture Software Developers Manuel (Vol 3b) からの説明とともにいくつかの生イベントについて説明しています
  • カーネルメーリングリストのパッチで、それを文書化する適切な方法について議論しています。上記のパターンは「... x86 固有であり、その点では不完全である」と明記されています
  • (更新) 新しいバージョンのマニュアル ページには、Intel マシンでの例が示されています:man perf-list

更新 :コメントで指摘されているように (ありがとう!)、libpfm トランスレータを使用して適切なイベント記述子を取得できます。コメントでリンクされている Web サイト (Bojan Nikolic:How to monitor the full range of CPU performance events) は、ユーザー 'osgx' によって発見され、詳細に説明されています。


同様に使用できるようです:

perf record -e cpu/event=0xB1,umask=0x1/u ./mytestapp someargs

この構文がどこに文書化されているかわかりません。

おそらく他の引数 (edge、inv、cmask) も使用できます。


Linux
  1. Arpwatchを使用してLinuxでイーサネットアクティビティを監視する方法

  2. PrometheusとGrafanaを使用してLinuxサーバーを監視する

  3. デバイス名の代わりに UUID を使用する VirtualBox raw ドライブ

  1. Inotifyを使用してファイルへのアクセスを監視しますか?

  2. Gnu Screenを使用すると、バックスラッシュで生のプロンプトが表示されますか?

  3. Nagios を使用して VPN アクティブ セッションと温度を監視する方法

  1. Nagios を使用してネットワーク スイッチとポートを監視する方法

  2. vnStat を使用して Linux でネットワーク トラフィックを監視およびログに記録する方法

  3. iostat を使用して Linux でシステム パフォーマンスを監視する (例を含む)