カーネル・スレッドのマイクロプロセッサー使用率測定のための pprof コマンドの使用法
pprof コマンドは、ある間隔内の、実行中のすべてのカーネル・スレッドのマイクロプロセッサー使用率を、トレース・ユーティリティーを使用して報告します。
ロー・プロセス情報は、pprof.flow に保管され、5 つのレポートが生成されます。 フラグを指定しない場合、すべてのレポートが生成されます。
pprof プログラムがインストールされていて、
使用可能かどうかを判別するには、次のコマンドを実行します。
# lslpp -lI bos.perf.tools レポートには以下のタイプがあります。
- pprof.cpu
- 実マイクロプロセッサー時間でソートされたすべてのカーネル・レベルのスレッドをリストします。 内容: プロセス名、プロセス ID、親プロセス ID、始動時および終了時のプロセス状態、 スレッド ID、親スレッド ID、実 CPU 時間、始動時刻、停止時刻、停止 - 始動。
- pprof.famcpu
- すべてのファミリー (祖先が共通しているプロセス) に関する情報をリストします。 ファミリーのプロセス名とプロセス ID は必ずしも祖先ではありません。 リストの内容: 開始時刻、プロセス名、プロセス ID、スレッド数、合計 CPU 時間。
- pprof.famind
- ファミリーごとにグループ化されたすべてのプロセス (祖先が共通しているプロセス) をリストします。 子プロセス名は、親プロセスより字下げされます。 リストの内容: 開始時刻、停止時刻、実際の CPU 時間、プロセス ID、親プロセス ID、スレッド ID、親スレッド ID、開始および終了時のプロセス状態、レベル、プロセス名。
- pprof.namecpu
- 各タイプのカーネル・スレッド (すべて同じ名前で実行可能) に関する情報をリストします。 内容: プロセス名、スレッドの数、CPU 時間、合計 CPU 時間のパーセンテージ。
- pprof.start
- pprof コマンドの間隔中にディスパッチされたすべてのカーネル・スレッドを、 始動時刻でソートしてリストします。 内容: プロセス名、プロセス ID、 親プロセス ID、始動および終了時のプロセス状態、スレッド ID、親スレッド ID、 実 CPU 時間、始動時刻、停止時刻、停止 - 始動。
次に示すのは、 tthreads32 プログラムを実行することによって生成されたサンプル pprof.namecpu ファイルです。このプログラムは、4 つのスレッドを fork し、各スレッドが独自のプロセスを fork します。 次に、これらのプロセスが、幾つかの ksh プログラムと sleep プログラムを実行します。
Pprof PROCESS NAME Report
Sorted by CPU Time
From: Thu Oct 19 17:53:07 2000
To: Thu Oct 19 17:53:22 2000
Pname #ofThreads CPU_Time %
======== ========== ======== ========
tthreads32 13 0.116 37.935
sh 8 0.092 30.087
Idle 2 0.055 17.987
ksh 12 0.026 8.503
trace 3 0.007 2.289
java 3 0.006 1.962
kproc 5 0.004 1.308
xmservd 1 0.000 0.000
trcstop 1 0.000 0.000
swapper 1 0.000 0.000
gil 1 0.000 0.000
ls 4 0.000 0.000
sleep 9 0.000 0.000
ps 4 0.000 0.000
syslogd 1 0.000 0.000
nfsd 2 0.000 0.000
========== ======== ========
70 0.306 100.000対応する pprof.cpu は次のとおりです。
Pprof CPU Report
Sorted by Actual CPU Time
From: Thu Oct 19 17:53:07 2000
To: Thu Oct 19 17:53:22 2000
E = Exec'd F = Forked
X = Exited A = Alive (when traced started or stopped)
C = Thread Created
Pname PID PPID BE TID PTID ACC_time STT_time STP_time STP-STT
===== ===== ===== === ===== ===== ======== ======== ======== ========
Idle 774 0 AA 775 0 0.052 0.000 0.154 0.154
tthreads32 5490 11982 EX 18161 22435 0.040 0.027 0.154 0.126
sh 11396 5490 EE 21917 5093 0.035 0.082 0.154 0.072
sh 14106 5490 EE 16999 18867 0.028 0.111 0.154 0.043
sh 13792 5490 EE 20777 18179 0.028 0.086 0.154 0.068
ksh 5490 11982 FE 18161 22435 0.016 0.010 0.027 0.017
tthreads32 5490 11982 CX 5093 18161 0.011 0.056 0.154 0.098
tthreads32 5490 11982 CX 18179 18161 0.010 0.054 0.154 0.099
tthreads32 14506 5490 FE 17239 10133 0.010 0.128 0.143 0.015
ksh 11982 13258 AA 22435 0 0.010 0.005 0.154 0.149
tthreads32 13792 5490 FE 20777 18179 0.010 0.059 0.086 0.027
tthreads32 5490 11982 CX 18867 18161 0.010 0.057 0.154 0.097
tthreads32 11396 5490 FE 21917 5093 0.009 0.069 0.082 0.013
tthreads32 5490 11982 CX 10133 18161 0.008 0.123 0.154 0.030
tthreads32 14106 5490 FE 16999 18867 0.008 0.088 0.111 0.023
trace 5488 11982 AX 18159 0 0.006 0.001 0.005 0.003
kproc 1548 0 AA 2065 0 0.004 0.071 0.154 0.082
Idle 516 0 AA 517 0 0.003 0.059 0.154 0.095
java 11612 11106 AA 14965 0 0.003 0.010 0.154 0.144
java 11612 11106 AA 14707 0 0.003 0.010 0.154 0.144
trace 12544 5488 AA 20507 0 0.001 0.000 0.001 0.001
sh 14506 5490 EE 17239 10133 0.001 0.143 0.154 0.011
trace 12544 5488 CA 19297 20507 0.000 0.001 0.154 0.153
ksh 4930 2678 AA 5963 0 0.000 0.154 0.154 0.000
kproc 6478 0 AA 3133 0 0.000 0.154 0.154 0.000
ps 14108 5490 EX 17001 18867 0.000 0.154 0.154 0.000
tthreads32 13794 5490 FE 20779 18179 0.000 0.154 0.154 0.000
sh 13794 5490 EE 20779 18179 0.000 0.154 0.154 0.000
ps 13794 5490 EX 20779 18179 0.000 0.154 0.154 0.000
sh 14108 5490 EE 17001 18867 0.000 0.154 0.154 0.000
tthreads32 14108 5490 FE 17001 18867 0.000 0.154 0.154 0.000
ls 13792 5490 EX 20777 18179 0.000 0.154 0.154 0.000
:
:
: