Utilizzo del comando pprof per misurare l'utilizzo del microprocessore dei thread del kernel
Il comando pprof riporta l'utilizzo del microprocessore su tutti i thread kernel in esecuzione in un intervallo utilizzando il programma di utilità di traccia.
Le informazioni sul processo non elaborate vengono salvate in pprof.flow e vengono creati cinque report. Se non viene specificato alcun indicatore, vengono generati tutti i report.
Per determinare se il programma pprof è installato e disponibile, eseguire il seguente comando:
# lslpp -lI bos.perf.tools I tipi di report sono i seguenti:
- pprof.cpu
- Elenca tutti i thread di livello kernel ordinati in base al tempo effettivo del microprocessore. Contiene: Nome processo, ID processo, ID processo parent, Stato processo all'inizio e alla fine, ID thread, ID thread parent, Tempo CPU effettivo, Ora di avvio, Ora di arresto, Arresto - Avvio.
- pprof.famcpu
- Elenca le informazioni per tutte le famiglie (processi con un antenato comune). Il nome processo e l'ID processo per la famiglia non sono necessariamente gli antenati. Contiene: Ora di inizio, Nome processo, ID processo, Numero di thread, Tempo CPU totale.
- pprof.famind
- Elenca tutti i processi raggruppati per famiglie (processi con un predecessore comune). I nomi dei processi child sono rientrati rispetto al parent. Contiene: Ora di inizio, Ora di fine, Tempo CPU effettivo, ID processo, ID processo principale, ID thread, ID thread principale, Stato processo all'inizio e alla fine, Livello, Nome processo.
- pprof.namecpu
- Elenca le informazioni su ciascun tipo di thread del kernel (tutti eseguibili con lo stesso nome). Contiene: Nome processo, Numero di thread, Tempo CPU,% del tempo CPU totale.
- pprof.start
- Elenca tutti i thread kernel ordinati per ora di avvio che sono stati inviati durante l'intervallo del comando pprof . Contiene: Nome processo, ID processo, ID processo parent, Inizio e fine stato processo, ID thread, ID thread parent, Tempo CPU effettivo, Ora di avvio, Ora di arresto, Arresto - Avvio.
Di seguito è riportato un file pprof.namecpu di esempio generato dall'esecuzione del programma tthreads32 , che esegue il fork di quattro thread, che a loro volta disattivano un processo. Questi processi eseguono diversi programmi ksh e 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.000Il pprof.cpu corrispondente è il seguente:
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
:
:
: