OSDN Git Service

util-linux: update original to 2.34
[linuxjm/jm.git] / manual / util-linux / release / man1 / readprofile.1
1 .\"
2 .\" Japanese Version Copyright (c) 1997 Koso Fukuba
3 .\"         all rights reserved.
4 .\" Translated Mon Jan 27 12:00:00 JST 1997
5 .\"         by Koso Fukuba <koso@ga2.so-net.or.jp>
6 .\"         for util-linux-2.5
7 .\" Translated Tue Sep 02 12:00:00 JST 1997
8 .\"         by Koso Fukuba <koso@ga2.so-net.or.jp>
9 .\"         for util-linux-2.7
10 .\" Updated Mon Apr  9 20:17:43 JST 2001
11 .\"         by Yuichi SATO <ysato444@yahoo.co.jp>
12 .\" Updated & Modified Wed Aug 28 04:34:09 JST 2002 by Yuichi SATO
13 .\" Updated & Modified Sat May  1 17:16:36 JST 2004 by Yuichi SATO
14 .\"
15 .TH READPROFILE 1 "May 1996"
16 .UC 4
17 .SH 名前
18 readprofile - カーネルのプロファイリング情報を読みだすツール
19 .SH 書式
20 .B readprofile
21 [
22 .I options
23 ]
24
25 .SH バージョン
26 このオンラインマニュアルは、バージョン 2.0 のものである。
27
28 .SH 説明
29
30 .LP
31 .B readprofile
32 コマンドは、
33 .B /proc/profile
34 の情報を標準出力に出力する。
35 出力される情報は、3 種類の情報から構成されている。
36 最初の項目は、クロックチック (clock tick) である。
37 2 番目は、たくさんの時間を消費しているカーネル内部の C の関数名である。
38 3 番目の項目は、手続きの「負荷」を正規化したもので、
39 関数の長さとクロック数の比率として計算される。
40 これらの項目は、読み取りやすいように空白を入れ、桁を揃えて出力される。
41
42 .LP
43 次のコマンドラインオプションを指定できる:
44
45 .TP
46 .RB -m " mapfile"
47 マップファイルを指定する。
48 デフォルトでは、
49 .B /usr/src/linux/System.map
50 が使用される。
51 現在のカーネルが最後にコンパイルしたものでない場合、
52 または System.map を他の場所に保存している場合は、
53 コマンドライン上でマップファイルを指定する必要がある。
54 マップファイル名の最後が `.gz' となっている場合は、
55 実行時に自動的に伸長される。
56
57 .TP
58 .RB -p " pro-file"
59 別のプロファイリングバッファを指定する。
60 デフォルトでは、
61 .B /proc/profile
62 が使用される。
63 別のプロファイリングバッファを使用すると、
64 カーネルプロファイリングを「凍結」した後で
65 プロファイリング情報を読む場合などに有用である。
66 .B /proc/profile
67 は、`cat' や、`cp' コマンドを使ってコピーすることができる。
68 プログラムがプロファイリングバッファのサイズを
69 前もって取得する必要があるため、
70 .B readprofile-1.1
71 で行なわれていた、
72 圧縮されたプロファイリングバッファはサポートされなくなった。
73
74 .TP
75 .B -i
76 カーネルプロファイリング情報の表示。
77 このオプションを指定すると、
78 .B readprofile
79 は、カーネルによって使用されている
80 プロファイリングステップのみを表示する。
81 プロファイリングステップはプロファイリングバッファの精度であり、
82 (make config を使った) カーネルの設定、
83 またはカーネルのコマンドラインで指定される。
84 .B -t
85 (terse: 簡潔モード) スイッチが
86 .B -i
87 と一緒に指定されると、単に 10 進数の数字のみが表示される。
88
89 .TP
90 .B -a
91 マップファイル中のすべてのシンボルを表示する。
92 デフォルトでは、使用クロック数が 0 の手続きは出力されない。
93
94 .TP
95 .B -b
96 各メモリ領域に対する出現数のカウントを表示する。
97
98 .TP
99 .B -r
100 プロファイリングバッファの内容を初期化する。
101 .B /proc/profile
102 は、スーパーユーザーだけが書き込み可能で、
103 一般ユーザーは読み込みしかできないため、
104 このオプションを使用するには、スーパーユーザーの権限が必要となる。
105 しかし、
106 .B readprofile
107 を setuid 0 とすることで、特権を持たないユーザーでも
108 プロファイリングバッファの内容を初期化することができる。
109
110 .TP
111 .RB -M " multiplier"
112 カーネルがプロファイリング割り込みを各 CPU に送る周期を変更できる
113 アーキテクチャもある。
114 このオプションにより、
115 周期をシステムクロック周波数 HZ の倍数で設定できる。
116 i386-SMP (2.2 と 2.4 カーネル) と
117 sparc64-SMP (2.4 カーネル) でサポートされている。
118 このオプションはプロファイリングバッファの初期化も行うので、
119 スーパーユーザー特権が必要である。
120
121 .TP
122 .B -v
123 詳細モード。
124 出力は 4 つの項目から構成され、それぞれ空白により桁が揃えられる。
125 最初の項目はカーネルの関数の RAM アドレス、
126 2 番目の項目は関数の名前、
127 3 番目の項目は使用したクロック数、
128 最後の項目には正規化された負荷が表示される。
129
130 .TP
131 .B -V
132 バージョン情報の表示。
133 .B readprofile
134 は、現在のバージョン番号を表示した後、終了する。
135
136 .SH 例
137 プロファイリングバッファの内容を使用したクロック数の順に表示するには:
138 .nf
139    readprofile | sort -nr | less
140
141 .fi
142 最もたくさんクロックを使用した関数の上位 20 個を表示するには:
143 .nf
144    readprofile | sort -nr +2 | head -20
145
146 .fi
147 ファイルシステムのプロファイリング情報だけを表示するには:
148 .nf
149    readprofile | grep _ext2
150
151 .fi
152 すべてのカーネル情報を RAM アドレスと一緒に表示させるには:
153 .nf
154    readprofile -av | less
155
156 .fi
157 現在のカーネルのものではない「凍結された」
158 プロファイリングバッファの内容を表示するには:
159 .nf
160    readprofile -p ~/profile.freeze -m /zImage.map.gz
161
162 .fi
163 各 CPU に対して 2kHz の周期でプロファイリングを要求し、
164 プロファイリングバッファを初期化するには:
165 .nf
166    sudo readprofile -M 20
167
168 .fi
169
170 .SH バグ
171
172 .LP
173 カーネルバージョン 1.2 から 1.3 で
174 .B /proc/profile
175 が変更されたため、
176 .B readprofile
177 は 1.3.x 以降のカーネルでのみ動作する。
178
179 .LP
180 このプログラムは、ELF カーネルでのみ動作する。
181 a.out カーネルへの変更は大きな作業ではない。
182 a.out カーネルユーザーへの練習問題として残してある。
183
184 .LP
185 プロファイリングを有効にするためには、
186 カーネルの (再構築と) リブートが必要である。
187 これはプロファイリング用のモジュールは存在せず、
188 かつ、簡単には作れないためである。
189 プロファイリングを有効にするには、カーネルのコマンドライン上で、
190 "profile=2" (または、別の数字) を指定する必要がある。
191 この数字を指数として 2 を累乗したものが、
192 プロファイリングステップとして使用される。
193
194 .LP
195 プロファイリングは、割り込みが禁止されていると使用できない。
196 これは、割り込みを再び有効にするときに、
197 多くのプロファイリングのカウントが行われることを意味する。
198 誤った情報に注意すること。
199
200 .SH ファイル
201 .nf
202 /proc/profile              プロファイリングバッファのバイナリスナップショット
203 /usr/src/linux/System.map  カーネルのシンボルテーブル
204 /usr/src/linux/*           プロファイルされるプログラム :-)
205 .fi