名 前
readprofile - カ ー ネ ル の プ ロ フ ァ イ リ ン グ 情 報 を 読 み だ す ツ ー ル
書 式
readprofile [ options ]
バ ー ジ ョ ン
こ の オ ン ラ イ ン マ ニ ュ ア ル は 、 バ ー ジ ョ ン 2.0 の も の で あ る 。
説 明
readprofile
コ マ ン ド は 、
/proc/profile の 情 報 を
標 準 出 力 に 出
力 す る 。 出 力
さ れ る 情 報 は
、 3 種 類 の 情 報
か ら 構 成 さ れ
て い る 。 最 初
の 項 目 は 、 ク
ロ ッ ク チ ッ ク (clock
tick) で あ る 。 2 番
目 は 、 た く さ
ん の 時 間 を 消
費 し て い る カ
ー ネ ル 内 部 の C
の 関 数 名 で あ
る 。 3 番 目 の 項
目 は 、 手 続 き
の 「 負 荷 」 を
正 規 化 し た も
の で 、 関 数 の
長 さ と ク ロ ッ
ク 数 の 比 率 と
し て 計 算 さ れ
る 。 こ れ ら の
項 目 は 、 読 み
取 り や す い よ
う に 空 白 を 入
れ 、 桁 を 揃 え
て 出 力 さ れ る
。 次 の コ マ ン
ド ラ イ ン オ プ
シ ョ ン を 指 定
で き る :
-m mapfile マ ッ プ フ
ァ イ ル を 指 定
す る 。 デ フ ォ
ル ト で は 、
/usr/src/linux/System.map が 使 用
さ れ る 。 現 在
の カ ー ネ ル が
最 後 に コ ン パ
イ ル し た も の
で な い 場 合 、
ま た は System.map を 他
の 場 所 に 保 存
し て い る 場 合
は 、 コ マ ン ド
ラ イ ン 上 で マ
ッ プ フ ァ イ ル
を 指 定 す る 必
要 が あ る 。 マ
ッ プ フ ァ イ ル
名 の 最 後 が
’.gz’ と な っ て
い る 場 合 は 、
実 行 時 に 自 動
的 に 伸 長 さ れ
る 。
-p pro-file 別 の プ ロ
フ ァ イ リ ン グ
バ ッ フ ァ を 指
定 す る 。 デ フ
ォ ル ト で は 、
/proc/profile が 使 用 さ
れ る 。 別 の プ
ロ フ ァ イ リ ン
グ バ ッ フ ァ を
使 用 す る と 、
カ ー ネ ル プ ロ
フ ァ イ リ ン グ
を 「 凍 結 」 し
た 後 で プ ロ フ
ァ イ リ ン グ 情
報 を 読 む 場 合
な ど に 有 用 で
あ る 。 /proc/profile は
、 ’cat’ や 、
’cp’ コ マ ン ド
を 使 っ て コ ピ
ー す る こ と が
で き る 。 プ ロ
グ ラ ム が プ ロ
フ ァ イ リ ン グ
バ ッ フ ァ の サ
イ ズ を 前 も っ
て 取 得 す る 必
要 が あ る た め
、 readprofile-1.1 で 行 な
わ れ て い た 、
圧 縮 さ れ た プ
ロ フ ァ イ リ ン
グ バ ッ フ ァ は
サ ポ ー ト さ れ
な く な っ た 。
-i カ ー ネ ル プ ロ フ ァ イ リ ン グ 情 報 の 表 示 。 こ の オ プ シ ョ ン を 指 定 す る と 、 |
readprofile は 、 カ ー ネ ル に よ っ て 使 用 さ れ て い る プ ロ フ ァ イ リ ン グ ス テ ッ プ の み を 表 示 す る 。 プ ロ フ ァ イ リ ン グ ス テ ッ プ は プ ロ フ ァ イ リ ン グ バ ッ フ ァ の 精 度 で あ り 、 (make config を 使 っ た ) カ ー ネ ル の 設 定 、 ま た は カ ー ネ ル の コ マ ン ド ラ イ ン で 指 定 さ れ る 。 -t (terse: 簡 潔 モ ー ド ) ス イ ッ チ が -i と 一 緒 に 指 定 さ れ る と 、 単 に 10 進 数 の 数 字 の み が 表 示 さ れ る 。
-a マ ッ プ フ ァ イ ル 中 の す べ て の シ ン ボ ル を 表 示 す る 。 デ フ ォ ル ト で は 、 使 用 ク ロ ッ ク 数 が |
0 の 手 続 き は 出 力 さ れ な い 。
-b 各 メ モ リ 領 域 に 対 す る 出 現 数 の カ ウ ン ト を 表 示 す る 。 |
||
-r プ ロ フ ァ イ リ ン グ バ ッ フ ァ の 内 容 を 初 期 化 す る 。 |
/proc/profile は
、 ス ー パ ー ユ
ー ザ ー だ け が
書 き 込 み 可 能
で 、 一 般 ユ ー
ザ ー は 読 み 込
み し か で き な
い た め 、 こ の
オ プ シ ョ ン を
使 用 す る に は
、 ス ー パ ー ユ
ー ザ ー の 権 限
が 必 要 と な る
。 し か し 、
readprofile を setuid 0 と す
る こ と で 、 特
権 を 持 た な い
ユ ー ザ ー で も
プ ロ フ ァ イ リ
ン グ バ ッ フ ァ
の 内 容 を 初 期
化 す る こ と が
で き る 。
-M multiplier カ ー ネ ル
が プ ロ フ ァ イ
リ ン グ 割 り 込
み を 各 CPU に 送 る
周 期 を 変 更 で
き る ア ー キ テ
ク チ ャ も あ る
。 こ の オ プ シ
ョ ン に よ り 、
周 期 を シ ス テ
ム ク ロ ッ ク 周
波 数 HZ の 倍 数 で
設 定 で き る 。
i386-SMP (2.2 と 2.4 カ ー ネ
ル ) と sparc64-SMP (2.4 カ ー
ネ ル ) で サ ポ ー
ト さ れ て い る
。 こ の オ プ シ
ョ ン は プ ロ フ
ァ イ リ ン グ バ
ッ フ ァ の 初 期
化 も 行 う の で
、 ス ー パ ー ユ
ー ザ ー 特 権 が
必 要 で あ る 。
-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 -m /zImage.map.gz 各
CPU に 対 し て 2kHz の
周 期 で プ ロ フ
ァ イ リ ン グ を
要 求 し 、 プ ロ
フ ァ イ リ ン グ
バ ッ フ ァ を 初
期 化 す る に は :
sudo readprofile -M 20
バ グ
カ ー ネ ル バ ー ジ ョ ン 1.2 か ら 1.3 で /proc/profile が 変 更 さ れ た た め 、 readprofile は 1.3.x 以 降 の カ ー ネ ル で の み 動 作 す る 。 こ の プ ロ グ ラ ム は 、 ELF カ ー ネ ル で の み 動 作 す る 。 a.out カ ー ネ ル へ の 変 更 は 大 き な 作 業 で は な い 。 a.out カ ー ネ ル ユ ー ザ ー へ の 練 習 問 題 と し て 残 し て あ る 。 プ ロ フ ァ イ リ ン グ を 有 効 に す る た め に は 、 カ ー ネ ル の (再 構 築 と ) リ ブ ー ト が 必 要 で あ る 。 こ れ は プ ロ フ ァ イ リ ン グ 用 の モ ジ ュ ー ル は 存 在 せ ず 、 か つ 、 簡 単 に は 作 れ な い た め で あ る 。 プ ロ フ ァ イ リ ン グ を 有 効 に す る に は 、 カ ー ネ ル の コ マ ン ド ラ イ ン 上 で 、 "profile=2" (ま た は 、 別 の 数 字 ) を 指 定 す る 必 要 が あ る 。 こ の 数 字 を 指 数 と し て 2 を 累 乗 し た も の が 、 プ ロ フ ァ イ リ ン グ ス テ ッ プ と し て 使 用 さ れ る 。 プ ロ フ ァ イ リ ン グ は 、 割 り 込 み が 禁 止 さ れ て い る と 使 用 で き な い 。 こ れ は 、 割 り 込 み を 再 び 有 効 に す る と き に 、 多 く の プ ロ フ ァ イ リ ン グ の カ ウ ン ト が 行 わ れ る こ と を 意 味 す る 。 誤 っ た 情 報 に 注 意 す る こ と 。
フ ァ イ ル
/proc/profile
プ ロ フ ァ イ リ
ン グ バ ッ フ ァ
の バ イ ナ リ ス
ナ ッ プ シ ョ ッ
ト
/usr/src/linux/System.map カ ー ネ
ル の シ ン ボ ル
テ ー ブ ル
/usr/src/linux/* プ ロ フ ァ
イ ル さ れ る プ
ロ グ ラ ム :-)