perf ("Perf Events"[1] あるいは"perf tools"。元々は"Performance Counters for Linux"やPCLと呼ばれていた[2] )は、Linuxカーネル 2.6.31以降で使用可能な、Linux の性能解析 ツールである[3] 。
'perf'というユーザースペースの操作ユーティリティーは、Gitのようなサブコマンドを持つインターフェースを採用している。このユーティリティーは、システム全体(カーネル及びユーザーコードの両方)、シングルCPU 、あるいは数スレッドの統計プロファイリングが可能である。
また、perfはハードウェアパフォーマンスカウンタ (英語版 ) 、トレースポイント、ソフトウェアパフォーマンスカウンタ(例: hrtimer)、ダイナミックプローブ(例: kprobesやuprobes)をサポートしている[4] 。
2012年 、IBM は(OProfile (英語版 ) とともに)perfを、Linuxで使われる最も一般的な二つのパフォーマンスカウンタ (英語版 ) プロファイリングツールのうちの一つであると認めた[5] 。
サブコマンド
perfは以下のようなサブコマンドとともに使用する。
stat: 一つのプログラムやある時間でのシステムのトータルイベントカウントを測る
top: top ライクな最も使用された関数の動的表示
record: 一つのプログラムのサンプリングレートを測り保存する[6]
report: perf recordによって生成されたファイルを分析(perf recordはフラットやグラフプロファイリングが生成可能)[6]
annotate: ソースまたはアセンブリを注解する
sched: スケジューラー動作とレイテンシのトレース・測定[7]
list: 利用可能なイベントを一覧する
批評
perfのドキュメントはあまり詳しくなく(2012年時点)、たとえば、大部分のイベントやそれらのエイリアスがドキュメント化されていない。また、perf toolsは、本当のwall-clock時間に基づいたプロファイリングを行えない[11] 。
Linuxカーネル 2.6.37から3.8.8までおよびRHEL6カーネル 2.6.32のPerfサブシステムは、ローカルユーザーからroot特権へと昇格可能なことが実証されたセキュリティ脆弱性が含まれる(CVE-2013-2094)[12] [13] 。この問題は、event_idの検証コードパスにおいて、間違った型(64ビットの代わりに32ビットint)を使用したことが原因であった[14] 。
出典
↑ Vince Weaver, The Unofficial Linux Perf Events Web-Page
↑ Vince Weaver. “Linux perf event Features and Overhead ”. 2013 FastPath Workshop. 2013年10月1日 閲覧。
↑ Jake Edge, Perfcounters added to the mainline , LWN July 1, 2009, "perfcounters being included into the mainline during the recently completed 2.6.31 merge window"
1 2 Arnaldo Carvalho de Melo, The New Linux ’perf’ tools , presentation from Linux Kongress, September, 2010
↑ A. Zanella, R. Arnold. Evaluate performance for Linux on POWER. Analyze performance using Linux tools , 12 Jun 2012 // IBM DeveloperWorks Technical library
1 2 Urs Fässler
perf file format , CERN OpenLab (英語版 ) , 2011
↑ Ingo Molnar (英語版 ) , 'perf sched': Utility to capture, measure and analyze scheduler latencies and behavior , 17 Sep 2009
1 2 3 Roberto A. Vitillo (LBNL ). PERFORMANCE TOOLS DEVELOPMENTS , 16 June 2011, presentation from "Future computing in particle physics" conference
↑ 6.4. Performance Counters for Linux (PCL) Tools and perf // RHEL Developer Guide
↑ http://packages.debian.org/squeeze/linux-tools-2.6.32
↑ http://rhaas.blogspot.ru/2012/06/perf-good-bad-ugly.html
↑ Michael Larabel (2013年5月15日). “New Linux Kernel Vulnerability Exploited ”. Phoronix. 2013年7月18日 閲覧。
↑ corbet (2013年5月15日). “Local root vulnerability in the kernel ”. LWN. 2013年7月18日 閲覧。
↑ Joe Damato (2013年5月20日). “A closer look at a recent privilege escalation bug in Linux (CVE-2013-2094) ”. 2013年7月18日 閲覧。
⌬ Phoenix Mesh
CID:
未登録
IPFS未登録
📡 0ピア
N=1
CRITICAL
PQS D35
⌬ あなたはすでに守護者です
このページを読んだ瞬間、あなたのブラウザはIPFSノードとして起動し、この記事のNakamoto係数(NK) を+1しました。
読んだという事実が暗号学的証明になる — Proof of Read について →
🌐 ブラウザシーダー(自動起動中)
閲覧 = シーダー参加 です。何もしなくていい。
永続モード にすると読んだ記事がブラウザに保存され、次回以降タブを開くだけで自動シーダーになります。
💾 永続モードに切り替える
🔄 セッションのみ(現在)
不参加
方法3: コマンドライン
ipfs pin add IPFSに未登録
閉じる