Команда pprof сообщает показатели использования процессора для всех нитей ядра, выполнявшихся в указанный период времени. Работа этой команды основана на утилите трассировки. Исходная информация о процессах сохраняется в файле pprof.flow. На ее основе команда может создать отчеты пяти типов. Если флаги не заданы, то выдаются все пять отчетов.
Для того чтобы узнать, установлена ли в системе программа pprof (эта программа предусмотрена в AIX версии 4.3.3 и выше), введите следующую команду:
# lslpp -lI perfagent.tools
Эта программа создает отчеты следующих типов:
Ниже приведен пример файла pprof.namecpu, содержащего отчет о выполнении программы tthreads32. Программа порождает четыре нити, каждая из которых, в свою очередь, порождает собственный процесс. Эти процессы запускают несколько программ ksh и sleep:
Отчет Pprof о процессах
Упорядочено по времени процессора
От: четверг 19 октября 2000 г. 17.53.07
До: четверг 19 октября 2000 г. 17.53.22
Процесс # нитей Время_CPU %
======== ========== ======== ========
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 об использовании процессора
Упорядочено по фактическому времени процессора
От: четверг 19 октября 2000 г. 17.53.07
До: четверг 19 октября 2000 г. 17.53.22
E = Выполнен F = Разветвлен
X = Завершен A = Активен (на момент начала или конца трассировки)
C = Создана нить
Процесс PID PPID BE TID PTID Учет Начало Конец Разность
===== ===== ===== === ===== ===== ======== ======== ======== ========
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
:
:
: