これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド operf です。
プログラム:
NAME
operf - Linux 用パフォーマンス プロファイラー ツール
SYNOPSIS
操作 [ オプション ] [ --システム全体 | --pid | [ コマンド [ 引数 ] ] ]
DESCRIPTION
Operf は、OProfile で提供されるプロファイラ ツールです。 Operf は Linux パフォーマンス イベントを使用します
したがって、古い oprofile カーネル ドライバーは必要ありません。
デフォルトでは、operf は次を使用します。 /oprofile_data をセッション ディレクトリとして使用し、プロファイリングを保存します
そこにあるデータ。 これは次の方法で変更できます。 -- セッションディレクトリ オプション。 いつものポスト~
などのプロファイリング分析ツール 報告する(1) オパノタテ(1) を生成するために使用できます
プロフィールレポート。 そうでない限り、 セッションディレクトリ が指定されている場合、後処理分析ツール
でサンプルを検索します/oprofile_data を最初に実行します。 そのディレクトリが存在しない場合は、
存在する場合、後処理ツールは /var/lib/oprofile の標準セッション ディレクトリを使用します。
受信したサンプルの合計や失われたサンプルなどの統計は、operf.log に書き込まれます。
にあるファイル/samples ディレクトリ。
RUN モード
次のうちの XNUMX つ (そして XNUMX つだけ) ラン モード 指定する必要があります:
command[引数]
プロファイリングするコマンドまたはアプリケーション。 引数 は入力引数です。
コマンドまたはアプリケーションが必要です。
--pid / -p PID
このオプションにより、operf が実行中のアプリケーションをプロファイリングできるようになります。 PID する必要があります
プロファイリングするプロセスのプロセス ID。 プロファイリングが完了したとき(たとえば、
プロファイルされたプロセスが終了します)、Ctrl-c を押して操作を停止します。 走れば 操作 --pid として
バックグラウンド ジョブ (つまり、& を使用)、 しなければなりません 制御された方法で順番に停止する
収集したプロファイル データを処理するためです。 使用 kill -シギント
この目的のために。
制限: このオプションを使用してマルチスレッド アプリケーションをプロファイリングする場合、
新しいプロセスもフォークします。フォークされたプロセスのサンプルには注意してください。
プロファイリングが開始される前は記録されない場合があります(スレッドのタイミングによって異なります)
作成時とoperfの開始時)。
--システム全体 / -s
このオプションは、システム全体のプロファイルを実行するためのものです。 root権限が必要です
このモードで operf を実行します。 プロファイリングが終了したら、Ctrl+C を押して操作を停止します。 もし、あんたが
ラン 操作 --システム全体 バックグラウンド ジョブ (つまり & を使用) として、 しなければなりません 止めてください
収集したプロファイル データを処理するための制御された方法。
kill -シギント この目的のために。 ランニングの際におすすめなのが、
このオプションを指定して operf を実行すると、ユーザーの現在の作業ディレクトリは次のようになります。 /ルート または
のサブディレクトリ /ルート からアクセスできる場所にサンプル データ ファイルを保存しないようにするため。
通常のユーザー。
その他 OPTIONS
--vmlinux / -k vmlinux_path
シンボルやデバッグ情報を持つ実行中のカーネルと一致する vmlinux ファイル。
カーネル サンプルはこのバイナリに帰属され、後処理ツールが使用できるようになります。
(opreport と同様に) サンプルを適切なカーネル シンボルに関連付けます。
カーネル シンボル情報は次から取得できます。 / proc / kallsyms ユーザーがそうする場合
vmlinux ファイルを指定しないでください。 シンボルアドレスは次のとおりです。 / proc / kallsyms if
/proc/sys/kernel/kptr_restrict の設定によって許可されます。
Status --vmlinux オプションが使用されていないため、カーネル シンボルを取得できません。
/ proc / kallsymsの場合、すべてのカーネル サンプルは「no-vmlinux」に帰属します。
実際のファイルではなく、サンプルを保持するための単なるバケツです。
-イベント / -e イベント1[,イベント2[,...]]
このオプションは、イベント仕様のカンマ区切りリストを渡すためのものです。
プロファイリング。 各イベント仕様は次の形式になります。
名前:カウント[:ユニットマスク[:カーネル[:ユーザー]]]
当学校区の カウント 値はプロファイリングのサンプリング レートを制御するために使用されます。 それは
サンプル間で発生するイベントの数。 を指定することでレートが下がります。
より高い カウント 値 — つまり、サンプル間で発生するイベントの数が多くなります。
指定できます ユニットマスク 数値 (XNUMX 進値) のいずれかを使用した値 しなければなりません
「0x」で始まる) またはシンボリック名 ( 名前= フィールドは、
助けてください 出力)。 一部の名前付きユニットマスクでは、XNUMX 進値が一意ではありません。 したがって、
OProfile ツールは、このようなユニット マスク値を名前で指定することを強制します。 ユニットマスクがない場合
が指定されている場合は、イベントのデフォルトのユニットマスク値が使用されます。
当学校区の kernel user イベント仕様の一部はバイナリ値 (「1」または「0」) です
カーネル空間とユーザー空間のサンプルを収集するかどうかを示します。
注意: を指定するには、 カーネル/ユーザー ビットの場合は、 ユニットマスク
プロセッサ タイプ (または指定されたイベント) がユニット マスクを使用しない場合でも、値
— この場合、null 単位マスクを示すには値「0」を使用します。 例えば:
-e INST_RETIRED_ANY_P:100000:0:1:0
^ ^ ^ ^
| | | |--- '0': ユーザー空間サンプルを記録しません
| | |-- '1': カーネル空間サンプルを記録します。
| |-- '0': NULL ユニットマスク
|--カウント値
一部の IBM PowerPC システムのイベント名には、 _GRP (グループ番号) サフィックス。
完全なイベント名または基本イベント名のいずれかを渡すことができます (つまり、
接尾語)に 動作します。 ベースイベント名が渡された場合、 操作 自動的に意志
イベントに適切なグループ番号サフィックスを選択します。 したがって、OProfile post-
処理ツールは常にグループ番号を含む実際のイベント名を表示します。
サフィックス。 イベントの指定が指定されていない場合、実行中のデフォルトのイベント
プロセッサのタイプはプロファイリングに使用されます。 使用 助けてください 利用可能なイベントをリストするには
プロセッサのタイプに応じて。
-コールグラフ / -g
このオプションにより、プロファイリング中にコールグラフを保存できるようになります。 注: 完全な
コールチェーンが記録されるため、深さの制限はありません。
--別スレッド / -t
このオプションは、スレッド グループ ID (tgid) とスレッド ID (tid) によってサンプルを分類します。 の
「-- Separate-thread」オプションは、マルチスレッドでスレッドごとのサンプルを表示するのに役立ちます。
スレッド化されたアプリケーション。 「--system-wide」オプションと組み合わせて使用すると、
「-- Separate-thread」オプションは、プロセスごとに確認するのにも役立ちます(つまり、
スレッドグループ) 複数のプロセスが同じを実行している場合のサンプル
プロファイリング実行中のプログラム。
--個別のCPU / -c
このオプションはサンプルを CPU ごとに分類します。
-- セッションディレクトリ / -d path
このオプションは、サンプル データを保持するセッション パスを指定します。 指定がない場合は、
データはに保存されます opprofile_data 現在のパス上のディレクトリ。
--lazy-conversion / -l
このオプションを使用して、 操作 プロファイリング中。 通常、プロフィール
カーネルから受信したデータはプロファイリング中に OProfile 形式に変換されます
時間。 単一のアプリケーションをプロファイリングする場合、これは通常問題になりません。 でもいつ
--システム全体 オプションを使用すると、このオンザフライ変換プロセスにより次のような問題が発生する可能性があります。
特にビジーなマルチプロセッサ システムでは、顕著なオーバーヘッドが発生します。 の - 怠け者-
変換 オプションが指示する 操作 プロファイリングが完了するまで待機して、
プロファイルデータの変換。
注意: このオプションは と組み合わせて使用することをお勧めします --pid
マルチスレッドプロセスをプロファイリングするためのオプション。 糸の順番にもよりますが
作成 (または新しいプロセスのフォーク) を行うと、新しいプロセスのサンプルが取得できない場合があります。
スレッド/プロセス。
-追加 / -a
デフォルトでは、 操作 古いプロファイル データをから移動します/サンプル/現在から
/サンプル/前。 「以前の」プロファイルがすでに存在する場合は、
取り替えられる。 もし -追加 オプションが渡されると、古いプロファイル データがそのまま残されます
新しいプロファイル データがそれに追加され、「以前の」プロファイル (存在する場合)
存在しました)はそのまま残ります。 「以前の」プロファイルにアクセスするには、単に
セッションの仕様を oprofile 後処理ツールの通常の呼び出しに追加します。
具体的な例を挙げますと、以下の通りです。
報告する セッション:前
-詳細 / -V レベル
冗長性を高めるために使用されるデバッグ制御値のカンマ区切りのリスト
出力の。 有効な値は次のとおりです: debug、record、convert、misc、sfile、arcs、または
特別な値「all」。
- バージョン / -v
operf バージョンを表示します。
- 助けて / -h
簡単な使用法メッセージを表示します。
- 利用方法 / -u
簡単な使用法メッセージを表示します。
実施例
$ operf メイク
VERSION
このマニュアル ページは、oprofile-1.1.0 用の最新のものです。
onworks.net サービスを使用してオンラインで operf を使用する