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