READPROFILE(1)

名前
readprofile - カーネルプロファイリング情報の読みだし

SYNOPSIS
readprofile [ options ]

バージョン
このオンラインマニュアルは、バージョン 1.1 のものである。

説明

readprofile コマンドは、 /proc/profile の情報を標準出力に出力する。 出力される情報は、3種類の情報から構成されている。 最初の項目は、clock ticks 。 2番目は、たくさんの時間を消費しているカーネル内部の C の関数名。 3 番目の項目は、関数の長さとクロック数の比率として計算された、 正規化された手続きの負荷。 読み取りやすいように空白をつめて桁をそろえて出力される。

次のコマンドラインオプションを指定できる:

-m mapfile
    マップファイルを指定する。ディフォルトでは、 /usr/src/linux/System.map. が使用される。 1.1.7x シリーズのでカーネルで、 readprofile を簡単に使うために、ディフォルトのファイルがオープンできなければ、 代わりに、 /usr/src/linux/zSystem.map が使用される。 現在のカーネルが最後にコンパイルしたものでない場合は、コマンドライン上 でマップファイルを指定する必要がある。マップファイルの最後が、 ".gz"となっている場合、実行時に自動的に伸長される。

-p pro-file
    別のプロファイルバッファを指定します。ディフォルトでは、 /proc/profile が使用される。 別のプロファイルバッファを使用すると、カーネルプロファイルを止めた後で プロファイリング情報を読む場合などに有用である。 /proc/profile は、cat や、cp コマンドを使ってコピーすることができる。 プロファイルバッファのファイル名の末尾が "gz" の場合、ファイルは、実行 時に自動的に伸長される。プロファイルバッファは、 gzip を使うと、50 から 100 分の 1 になる。

-i  カーネルプロファイル情報の表示。このオプションを指定すると、 readprofile は、カーネルによって使用されているプロファイルステップを表示するだけと なる。プロファイルステップは、プロファイルバッファの精度で、この値は、カー ネルの構築時(make config 時)に選択される。 -t (terse:簡潔モード)スイッチが -i と一緒に指定されると、単に 10 進数の数字が表示されるだけになる。

-a  マップファイル中のすべてのシンボルを表示する。ディフォルトでは、使用 クロック数が、0 の関数は出力されない。

-r  プロファイルバッファの内容を初期化する。 /proc/profile は、スーパーユーザーによってのみ書き込み可能で、一般ユーザーは読み込み しかできないため、このオプションを使用するには、スーパーユーザーの権限 が必要となる。

-t  簡潔モード。出力の桁合わせを行なわない。このフォーマットは、 readprofile の最初のリリースで使用されたものである。

-v  冗長モード。 出力は 4 つの項目から構成され、それぞれ桁がそろえられる。 最初の項目は、カーネルの関数の RAM アドレス、2番目は、関数の名前、 3 番目の項目は、使用したクロック数、最後の項目には、正規化された負荷が 表示される。

-V  バージョン情報の表示。 readprofile は、現在のバージョン番号を表示した後、終了する。

例
プロファイルバッファの内容を使用したクロック数の順に表示するには:
   readprofile | sort -nr | less
最もたくさんクロックを使用した関数の上位 20 個を表示するには:
   readprofile | sort -nr +2 | head -20
ファイルシステムのプロファイル情報だけを表示するには:
   readprofile | grep _ext2
すべてのカーネル情報を RAM アドレスと一緒に表示させるには:
   readprofile -av | less
圧縮され、かつ、現在のカーネルのものではない'冷凍保存された' プロファイル バッファの内容を表示するには:
   readprofile -p ~/profile.freeze.gz -m /zImage.map

バグ

1.1.73 以前のバージョンでは、 /proc/profile がないため、 readprofile を使用するには、 それ以降のカーネルが必要となる。

プロファイリングを可能にするために、カーネルの再構築およびリブートが必 要。プロファイリング用のモジュールは存在せず、かつ、簡単には作れないた め、この機能はカーネルに組みこむ必要があります。

プロファイリングは、割り込みが禁止されていると使用できない。 このことは、多くのプロファイルのカウントが、割り込みを再度イネーブルにす るときに行われることを意味する。誤った情報には注意が必要。

著者
readprofile と /proc/profile は、Alessandro Rubini (rubini@ipvvis.unipv.it) によって作成された。

ファイル
/proc/profile              A binary snapshot of the profiling buffer.
/usr/src/linux/System.map  The symbol table for the kernel.
/usr/src/linux/zSystem.map Old name for the symbol table.
/usr/src/linux/*           The program being profiled :-)

翻訳
福場 浩壮 <koso@ga2.so-net.or.jp>