Consultor Eletrônico



Kbase 42494: Identificar threads executadas pelo processo oninit
Autor   Clayton Jorge De Souza - CAT
Acesso   Público
Publicação   15/09/2011
- Identificar o PID do processo ONINIT através de ferramenta apropriada de acordo com o sistema operacional (TOP, PS, SMIT, etc). No exemplo abaixo foi utilizado o TOP no linux.

top - 15:22:06 up 67 days, 1:22, 1 user, load average: 0.24, 0.64, 0.78
Tasks: 281 total, 2 running, 279 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.7%us, 0.1%sy, 0.0%ni, 98.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16441492k total, 15807660k used, 633832k free, 223732k buffers
Swap: 8393952k total, 500k used, 8393452k free, 15140756k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5757 informix 5 -10 1355m 567m 565m S 3 3.5 27:19.87 oninit


- Neste exemplo, o PID identificado é "5757". Através do comando ?ONSTAT ?G GLO? é possível verificar qual a classe do "virtual processor" está associada ao PID do ONINIT. Na mesma linha, na primeira coluna chamada ?VP?, contém a informação referente ao número do ?virtual processor?.

30 /root> onstat -g glo

IBM Informix Dynamic Server Version 11.50.FC4 -- On-Line -- Up 09:16:48 -- 1352824 Kbytes

MT global info:
sessions threads vps lngspins
61 91 18 8

sched calls thread switches yield 0 yield n yield forever
total: 60290154 39039224 21677928 309745 1441156
per sec: 18859 18763 131 15 36

Virtual processor summary:
class vps usercpu syscpu total
cpu 4 5224.51 226.98 5451.49
aio 9 5.39 15.06 20.45
lio 1 0.13 0.97 1.10
pio 1 0.00 0.22 0.22
adm 1 0.00 0.01 0.01
soc 1 76.29 126.86 203.15
msc 1 1.90 0.58 2.48
total 18 5308.22 370.68 5678.90

Individual virtual processors:
vp pid class usercpu syscpu total Thread Eff
1 5757 cpu 1464.53 99.35 1563.88 1754.69 89%
2 5758 adm 0.00 0.01 0.01 0.00 0%
3 5759 cpu 3229.64 105.25 3334.89 3334.89 100%
4 5760 cpu 443.58 19.74 463.32 463.32 100%
5 5761 cpu 86.76 2.64 89.40 89.40 100%
6 5762 lio 0.13 0.97 1.10 14.82 7%
7 5763 pio 0.00 0.22 0.22 2.14 10%
8 5764 aio 4.64 13.02 17.66 166.66 10%
9 5765 msc 1.90 0.58 2.48 11.85 20%
10 5766 aio 0.36 0.76 1.12 16.61 6%
11 5767 soc 76.29 126.86 203.15 NA NA
12 5768 aio 0.08 0.29 0.37 8.21 4%
13 5769 aio 0.06 0.24 0.30 7.02 4%
14 5770 aio 0.06 0.17 0.23 6.44 3%
15 5771 aio 0.06 0.14 0.20 6.09 3%
16 5772 aio 0.04 0.15 0.19 5.25 3%
17 5773 aio 0.07 0.13 0.20 5.92 3%
tot 5308.22 370.68 5678.90


- Para o PID 5757, o VP identificado é o número 1 da classe CPU. De posse desta informação, através do comando ?ONSTAT ?G ATH? é possível identificar quais processos estão sendo executados pelo ONINIT em questão. A classe do virtual processo e seu número podem ser verficados na coluna "vp-class" conforme demonstrado abaixo:

34 /root> onstat -g ath

IBM Informix Dynamic Server Version 11.50.FC4 -- On-Line -- Up 09:39:00 -- 1352824 Kbytes

Threads:
tid tcb rstcb prty status vp-class name
2 77ed18d8 0 1 IO Idle 6lio* lio vp 0
3 77f062a8 0 1 IO Idle 7pio* pio vp 0
4 77f262a8 0 1 IO Idle 8aio* aio vp 0
5 77f452a8 0 1 IO Idle 9msc* msc vp 0
6 77f742a8 0 1 IO Idle 10aio* aio vp 1
7 77f94548 773c1028 3 sleeping secs: 1 3cpu main_loop()
8 77f26710 0 1 running 1cpu* sm_poll
9 78096d18 0 1 running 11soc* soctcppoll
10 7809a2d8 0 2 sleeping forever 1cpu sm_listen
11 7819d9b8 0 1 sleeping secs: 1 3cpu sm_discon
12 781f3c40 0 2 sleeping forever 1cpu* soctcplst
13 782134a8 773c1878 1 sleeping secs: 1 1cpu flush_sub(0)
14 782137c0 773c20c8 1 sleeping secs: 1 1cpu flush_sub(1)
15 78213ad8 773c2918 1 sleeping secs: 1 1cpu flush_sub(2)
16 78271028 773c3168 1 sleeping secs: 1 3cpu flush_sub(3)

- E para saber exatamente qual usuário está executando o determinado processo, reserve o valor da coluna ?rstcb? (quando for diferente de 0 ? zero) e execute o comando ?ONSTAT ?U? conforme abaixo:

38 /root> onstat -u | grep 773c20c8
773c20c8 ---P--F 0 informix - 0 0 0 0 22978

Com estas informações é possível saber qual usuário e qual thread está sendo executado por determinado processo ONINIT.