READPROFILE
Section: System Administration (8)
Updated: October 2011
Index
Return to Main Contents
名前
readprofile - カーネルのプロファイル情報を読み込む。
書式
readprofile
[options]
バージョン
この man ページはプログラムのバージョン 2.0 についてドキュメント化している。
説明
readprofile
コマンドは
/proc/profile
の情報を使い、ASCII データを標準出力に表示する。
出力は 3 列から構成される。
1 列目はクロックティック (clock ticks) 数、
2 列目はそのティックス数が発生したカーネルの C 言語の関数名、
3 列目はプロシージャの正規化した「負荷」の値であり、
ティックス数とプロシージャの長さの割合である。
出力は、読みやすいように、空白で埋められる。
オプション
- -a, --all
-
マップファイル内の全てのシンボルを表示する。
デフォルトでは、レポートされるティックスのプロシージャは
表示されない。
- -b, --histbin
-
各ヒストグラムの区間のカウントを表示する。
- -i, --info
-
情報。
このオプションを指定すると、
readprofile
はカーネルによって使われるプロファイリングステップのみを表示する。
プロファイリングステップは、プロファイリングバッファの精度であり、
(`make config' による) カーネル設定、またはカーネルのコマンドラインで選択される。
-t
(terse: 簡略) スイッチが
-i
とともに使われた場合、10 進数の値のみが表示される。
- -m, --mapfile mapfile
-
マップファイルを指定する。
デフォルトは
/usr/src/linux/System.map
である。
現在のカーネルが最後にコンパイルしたものでない場合、
または System.map をどこか他の場所に置いている場合、
マップファイルをコマンドラインで指定すべきである。
マップファイル名が `.gz' で終わっている場合、自動で展開される。
- -M, --multiplier multiplier
-
アーキテクチャによっては、カーネルが各 CPU で行うプロファイリング割り込みの
周期を変更することができる。
このオプションでは、割り込みの周期を、システムクロックの周波数の
倍数に設定できる (HZ)。
Linux 2.6.16 では多くのシステムで倍数のサポートをなくした。
このオプションはプロファイリングバッファのリセットも行い、
スーパーユーザー権限が必要である。
- -p, --profile pro-file
-
別のプロファイリングバッファを指定する。
デフォルトは
/proc/profile
である。
別の pro-file を使うのは、ある時点のカーネルプロファイリングを「凍結して (freeze)」、
後から読み込むのに役立つ。
ファイル
/proc/profile
は `cat' や `cp' を使ってコピーできる。
readprofile-1.1
にあった圧縮したプロファイリングバッファは、このプログラムが
バッファサイズを前もって知る必要があるため、もはやサポート
されてない。
- -r, --reset
-
プロファイリングバッファをリセットする。
/proc/profile
は誰でも読み出し可能であるが、スーパーユーザーのみが書き込み
可能であるので、このオプションは root によってのみ呼び出し可能である。
しかし、
readprofile
を set-user-ID 0 にすれば、特権を得ずにバッファをリセットできる。
- -s, --counters
-
関数内の各カウンタを表示する。
- -v, --verbose
-
詳細な表示を行う。
出力は 4 つのカラムから構成され、空白で埋められる。
1 列目はカーネル関数の RAM アドレス、2 列目は関数名、
3 列目はクロックティック数、4 列目は正規化した負荷である。
- -V, --version
-
バージョン番号を表示して、終了する。
- -h, --help
-
ヘルプを表示して、終了する。
例
プロファイリングバッファをクロックティックの順に並べて見る:
readprofile | sort -nr | less
負荷の高い順に 20 個のプロシージャを表示する:
readprofile | sort -nr +2 | head -20
ファイルシステムプロファイルのみを表示する:
readprofile | grep _ext2
全てのカーネル情報を RAM アドレス付きで見る:
readprofile -av | less
現在のカーネルのものではない「凍結した」プロファイリングバッファを見る:
readprofile -p ~/profile.freeze -m /zImage.map.gz
CPU 毎に 2kHz でプロファイリングを行い、プロファイリングバッファをリセットする:
sudo readprofile -M 20
バグ
/proc/profile
はカーネル 1.2 から 1.3 の段階で変更されたので、
readprofile
は 1.3.x より新しいカーネルでしか動作しない。
このプログラムは ELF カーネルでしか動作しない。
a.out カーネルでの変更は取るに足らないものであるので、
a.out のユーザーへの練習として残してある。
プロファイリングを有効にするには、カーネルを再起動しなければならない。
なぜなら、プロファイリングモジュールは存在せず、簡単にはビルドできない
からである。
プロファイリングを有効にするには、カーネルのコマンドラインで
"profile=2" (または他の数値) を指定すればよい。
この数値は 2 のべき乗になり、プロファイリングのステップで使われる。
割り込みが禁止されているときには、プロファイリングは無効化される。
割り込みが再度有効化されたときに、多くのプロファイリングのティックスが
発生する。
誤解を生みやすい情報に注意すること。
ファイル
/proc/profile プロファイリングバッファのバイナリスナップショット
/usr/src/linux/System.map カーネルのシンボルテーブル
/usr/src/linux/* プロファイリング対象のプログラム :-)
入手方法
readprofile コマンドは util-linux パッケージの一部であり、
Linux Kernel Archive
から入手できる。
Index
- 名前
-
- 書式
-
- バージョン
-
- 説明
-
- オプション
-
- 例
-
- バグ
-
- ファイル
-
- 入手方法
-
This document was created by
man2html,
using the manual pages.
Time: 13:31:37 GMT, April 28, 2020