SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
More	
  Complex	
  Performance	
  Issues	
  I’ve	
  seen	
  
(Part	
  2)	
  
Tanel	
  Põder	
  
Enkitec	
  
	
  
h.p://www.enkitec.com	
  
h.p://blog.tanelpoder.com	
  

www.enkitec.com	
  	
  

1	
  	
  	
  
Intro:	
  About	
  me	
  
•  Tanel	
  Põder	
  
•  Former	
  Oracle	
  Database	
  Performance	
  geek	
  
•  Present	
  Exadata	
  Performance	
  geek	
  ;-­‐)	
  

•  My	
  Exadata	
  experience	
  
•  …	
  in	
  the	
  last	
  couple	
  of	
  years…	
  
•  …	
  I	
  have	
  had	
  the	
  luck	
  to	
  work	
  with	
  all	
  
possible	
  Exadata	
  configuraNons	
  out	
  there	
  
•  Exadata	
  V1	
  …	
  X2-­‐8	
  
•  MulN-­‐rack	
  Exadatas	
  …	
  
•  Even	
  a	
  mixed	
  rack	
  Exadata	
  (V2	
  <-­‐>	
  X2-­‐2	
  :)	
  

Expert	
  Oracle	
  Exadata	
  
book	
  
(with	
  Kerry	
  Osborne	
  and	
  
Randy	
  Johnson)	
  

www.enkitec.com	
  	
  

2	
  	
  	
  
Random	
  Session	
  Hangs	
  
•  Environment:	
  
•  Oracle	
  11.1	
  Database	
  on	
  Linux	
  
•  4	
  CPUs	
  
•  Running	
  on	
  ASM	
  

•  Symptoms:	
  
•  Sudden	
  slowness	
  of	
  the	
  database,	
  lasNng	
  for	
  a	
  few	
  minutes	
  
•  Some	
  long	
  TX,	
  TM,	
  CF	
  enqueue	
  waits	
  
•  Some	
  sessions	
  completely	
  stuck,	
  some	
  showing	
  IO	
  waits,	
  some	
  CPU	
  

	
  
•  First	
  hunch:	
  
•  Seemed	
  quite	
  random	
  and	
  weird	
  
•  Maybe	
  slow/hung	
  IO?	
  
www.enkitec.com	
  	
  

3	
  	
  	
  
AWR	
  Report	
  
•  ApplicaNon	
  locking	
  problem,	
  right?	
  

•  Very	
  long	
  IO	
  waits…	
  
•  The	
  applicaNon	
  locks	
  may	
  be	
  held	
  for	
  so	
  long	
  because	
  of	
  
some	
  other	
  task	
  (while	
  holding	
  the	
  lock)	
  takes	
  so	
  long?	
  
	
  
www.enkitec.com	
  	
  

4	
  	
  	
  
Finding	
  the	
  blockers	
  from	
  ASH	
  
SELECT	
SESSION_STATE	
, EVENT	
, P1TEXT ||'='||P1 p1	
, BLOCKING_SESSION_STATUS	
, BLOCKING_INST_ID	
, BLOCKING_SESSION	
, BLOCKING_SESSION_SERIAL#	
, COUNT(DISTINCT session_id)	
, COUNT(*)	
FROM	
dba_hist_active_sess_history w	
WHERE	
sample_time BETWEEN timestamp'2011-03-22 13:48:00' 	
AND timestamp'2011-03-22 13:50:00'	
AND event LIKE 'enq%'	
GROUP BY	
SESSION_STATE	
, EVENT	
, P1TEXT ||'='||P1	
, BLOCKING_SESSION_STATUS	
, BLOCKING_INST_ID	
, BLOCKING_SESSION	
, BLOCKING_SESSION_SERIAL#	
ORDER BY	
COUNT(*) DESC	

www.enkitec.com	
  	
  

Finding	
  the	
  blocking	
  session	
  SID	
  is	
  just	
  the	
  first	
  
step,	
  you	
  really	
  want	
  to	
  know	
  what	
  is	
  that	
  
blocking	
  session	
  itself	
  doing.	
  	
  
	
  
In	
  other	
  words,	
  where	
  is	
  it	
  stuck	
  so	
  that	
  it	
  hasn’t	
  
released	
  that	
  lock	
  yet.	
  

You	
  can	
  use	
  one	
  of	
  the	
  many	
  lock	
  tree	
  scripts	
  /	
  
tools	
  for	
  finding	
  the	
  ulNmate	
  blocker.	
  
	
  
Note	
  that	
  Oracle	
  11.2	
  has	
  a	
  
FINAL_BLOCKING_SESSION	
  column	
  in	
  V
$SESSION	
  and	
  ASH	
  showing	
  the	
  ulNmate	
  
blocker.	
  

5	
  	
  	
  
Blocking	
  Tree	
  

Many	
  of	
  the	
  blockers	
  ulNmately	
  
wait	
  for	
  SQL*Net	
  message	
  to	
  client	
  
wait	
  event	
  ?!!!	
  

www.enkitec.com	
  	
  

Many	
  blocked	
  sessions	
  are	
  waiNng	
  
for	
  read	
  by	
  other	
  session	
  IO	
  wait.	
  
Such	
  wait	
  had	
  lasted	
  for	
  minutes	
  

6	
  	
  	
  
More	
  blocking	
  trees	
  

Looks	
  like	
  an	
  
IO	
  issue!	
  

www.enkitec.com	
  	
  

7	
  	
  	
  
SuspecNng	
  an	
  I/O	
  issue?	
  
•  As	
  these	
  I/O	
  waits	
  suggested…	
  
•  The	
  obvious	
  next	
  things	
  to	
  check:	
  
•  How	
  much	
  I/O	
  are	
  you	
  actually	
  doing	
  –	
  from	
  OS	
  level	
  metrics	
  
	
  

•  The	
  OS	
  level	
  metrics	
  (iostat	
  and	
  sar)	
  did	
  not	
  indicate	
  an	
  
obvious	
  IO	
  problem!	
  
NB!	
  This	
  example	
  is	
  
from	
  my	
  laptop	
  as	
  I	
  
don’t	
  have	
  the	
  real	
  
output	
  anymore.	
  

•  The	
  IO	
  Nmes	
  (in	
  iostat)	
  were	
  OK:	
  	
  
$ iostat –x 5	
	
Device:
sda
sda1
sda2
dm-0
dm-1

rrqm/s
49.72
0.01
49.71

wrqm/s
r/s
w/s
43.03 55.69 22.40
0.03 0.00 0.00
42.99 55.69 22.40

rsec/s
3166.72
0.01
3166.70

wsec/s avgrq-sz avgqu-sz
553.49
47.64
0.24
0.07
60.26
0.00
553.43
47.64
0.24

0.00
0.00

0.00 30.91 10.46
0.00 74.49 55.81

2570.75
595.95

106.94
446.48

www.enkitec.com	
  	
  

64.71
8.00

0.07
0.62

await
3.11
2.18
3.11

svctm
0.23
0.66
0.23

%util	
1.80	
0.00	
1.80	

1.58
4.77

0.25
0.08

1.03	
1.05	

8	
  	
  	
  
OEM	
  ASH	
  AcNvity	
  breakdown	
  	
  
•  We	
  know	
  that	
  many	
  of	
  the	
  sessions	
  were	
  hung	
  waiNng	
  for	
  IO	
  
related	
  wait	
  events	
  
•  …but	
  some	
  were	
  ulNmately	
  blocked	
  by	
  SQL*Net	
  message	
  to	
  client	
  

•  Let’s	
  peek	
  around	
  further	
  in	
  the	
  database:	
  

www.enkitec.com	
  	
  

What,	
  CPU	
  
load	
  over	
  50	
  
on	
  a	
  4	
  CPU	
  
machine?!	
  

9	
  	
  	
  
OEM	
  Performance	
  page	
  
•  No	
  CPU	
  problem.	
  User	
  I/O,	
  Commit	
  and	
  ApplicaNon	
  waits	
  
This	
  data	
  comes	
  
from	
  OS	
  	
  
(v$osstat)	
  so	
  
should	
  be	
  reliable	
  

www.enkitec.com	
  	
  

But	
  the	
  Performance	
  
Page	
  doesn’t	
  show	
  CPU	
  
load	
  that	
  we	
  saw	
  on	
  the	
  
(ASH)	
  AcNvity	
  Detail?	
  

10	
  	
  	
  
Go	
  to	
  the	
  source	
  (OS)	
  
•  Sar	
  &	
  vmstat	
  data:	
  No	
  CPU	
  starvaNon!	
  
procs
r b
5 0
0 0
0 0

-----------memory---------- ---swap-- -----io---- --system-swpd
free
buff cache
si
so
bi
bo
in
cs
143272 264980 261616 6970896
0
0 3164
319
3
1
143272 257376 261616 6970568
0
0
840
23 6351 8484
143272 261748 261616 6970952
0
0
0 3535 5303 7740

-----cpu------	
us sy id wa st	
14 3 77 6 0	
11 8 73 8 0	
7 1 89 2 0	

•  Whom	
  to	
  trust?	
  
•  OS	
  tools,	
  V$OSSTAT	
  and	
  Load	
  figures	
  in	
  EM	
  Performance	
  Page	
  ask	
  for	
  the	
  
CPU	
  usage	
  figures	
  from	
  OS	
  –	
  so	
  are	
  ok	
  
•  The	
  ASH	
  data	
  (and	
  EM	
  AcNvity	
  page)	
  assume	
  that	
  any	
  session	
  not	
  marked	
  
as	
  “waiNng”	
  in	
  V$SESSION	
  is	
  on	
  CPU!	
  
•  h.p://blog.tanelpoder.com/2007/06/18/advanced-­‐oracle-­‐troubleshooNng-­‐guide-­‐
when-­‐the-­‐wait-­‐interface-­‐is-­‐not-­‐enough-­‐part-­‐1/	
  
•  h.p://oracledoug.com/serendipity/index.php?/archives/1432-­‐Time-­‐Ma.ers-­‐DB-­‐
CPU.html	
  
www.enkitec.com	
  	
  

11	
  	
  	
  
Checkpoint	
  
•  Something	
  weird	
  is	
  going	
  on!	
  
	
  
•  Oracle	
  says	
  many	
  sessions	
  are	
  on	
  on	
  CPU,	
  when	
  they	
  really	
  
aren’t	
  
•  Oracle	
  says	
  sessions	
  are	
  waiNng	
  for	
  IO	
  wait	
  events	
  a	
  lot,	
  
while	
  not	
  much	
  IO	
  acNvity	
  was	
  going	
  on	
  
•  …	
  and	
  the	
  OS	
  level	
  IO	
  metrics	
  didn’t	
  show	
  long	
  IO	
  
compleNon	
  Nmes	
  either	
  

The	
  IO	
  hangs	
  can	
  be	
  
tricky	
  to	
  diagnose	
  as	
  
the	
  iostat	
  figures	
  are	
  
updated	
  when	
  the	
  IO	
  
actually	
  completes*	
  

•  Many	
  sessions	
  reported	
  doing	
  IO	
  by	
  Oracle	
  are	
  blocked	
  by	
  a	
  
session	
  waiNng	
  for	
  SQL*Net	
  message	
  to	
  client	
  
www.enkitec.com	
  	
  

12	
  	
  	
  
Time	
  to	
  get	
  systemaNc	
  
•  …	
  and	
  see	
  what	
  these	
  hung	
  processes	
  are	
  really	
  doing!	
  
•  Did	
  I	
  hear	
  someone	
  saying	
  process	
  stack?!	
  ;-­‐)	
  

•  Reminder:	
  Oracle	
  is	
  just	
  another	
  program	
  wri.en	
  in	
  C	
  
•  The	
  process	
  stack	
  will	
  show	
  in	
  which	
  of	
  those	
  C	
  funcNons	
  the	
  
problemaNc	
  process	
  execuNon	
  (hang)	
  currently	
  is!	
  
•  All	
  major	
  Unix	
  plavorms	
  have	
  pstack	
  (procstack	
  on	
  AIX)	
  
•  Oradebug	
  short_stack	
  /	
  dump	
  errorstack	
  would	
  also	
  do	
  it	
  *	
  

•  However	
  the	
  hangs	
  were	
  sporadic…	
  
www.enkitec.com	
  	
  

I	
  prefer	
  OS	
  
pstack	
  as	
  it’s	
  
cleaner	
  

13	
  	
  	
  
@mon_stack.sql	
  for	
  waiNng	
  for	
  lisNng	
  the	
  blocker	
  
•  When	
  the	
  Nme	
  is	
  right:	
  
-- STEP 1	
DEFINE threshold=&1	
	
-- First sleep and monitor V$SESSION to find long waits	
-- in the database	

-- STEP 2	
	
SELECT 'ULTIMATE_BLOCKER_'||TRIM(s.type)	
||'= '||TRIM(osid) blocking_spid	
, w.in_wait_secs	

-- This PL/SQL block will just keep running until a	
-- long enough wait is seen	
	
DECLARE	
l_threshold NUMBER := &threshold;	
l_max_wait NUMBER;	
BEGIN	
WHILE TRUE LOOP	

, w.pid	
, w.sid	
, w.in_wait	
, w.wait_event	
, w.p1	
, w.p2	
, w.p3	
FROM	

SELECT MAX(seconds_in_wait) INTO l_max_wait 	
FROM v$session WHERE state = 'WAITING' AND
wait_class != 'Idle';	
IF l_max_wait > l_threshold THEN	
EXIT;	
END IF;	
DBMS_LOCK.SLEEP(30);	
END LOOP;	
	
END;	
/	

v$wait_chains w	
, v$session s	
WHERE	
w.sid
= s.sid	
AND w.sess_serial# = s.serial#	
AND w.blocker_sid IS NULL	
AND w.num_waiters > 0	
/	
	
-- Exit script	
EXIT	

www.enkitec.com	
  	
  

14	
  	
  	
  
Wait	
  unNl	
  the	
  hang	
  
happens	
  

mon_hang_stack.sh	
  

sqlplus -s $ORA_LOGON @mon_stack $THRESHOLD > $TMPFILE	
	
ULTIMATE_BLOCKERS=`grep ULTIMATE_BLOCKER_USER $TMPFILE | awk '{ print $2 }'`	
	
echo >> $LOGFILE	
cat $TMPFILE >> $LOGFILE	
	
echo >> $LOGFILE	
echo DATE=`date +"%Y-%d-%m %H:%M:%S"` ULTIMATE_BLOCKERS=$ULTIMATE_BLOCKERS >> $LOGFILE	
	
for i in $ULTIMATE_BLOCKERS ; do	
echo >> $LOGFILE	
echo DATE=`date +"%Y-%d-%m %H:%M:%S"` running pstack on PID=$i >> $LOGFILE	
echo >> $LOGFILE	
echo Stack trace 1 >> $LOGFILE	
echo >> $LOGFILE	
pstack $i >> $LOGFILE	
sleep 1	
echo >> $LOGFILE	
echo Stack trace 2 >> $LOGFILE	
echo >> $LOGFILE	

Wait	
  unNl	
  the	
  hang	
  
happens	
  (the	
  mon_stack	
  
script	
  exits	
  only	
  when	
  it	
  
detects	
  a	
  long	
  enough	
  wait	
  
and	
  then	
  proceed	
  to	
  
pstack’ing	
  the	
  ulNmate	
  
blocker	
  PIDs	
  

pstack $i >> $LOGFILE	
sleep 1	
echo >> $LOGFILE	
echo Stack trace 3 >> $LOGFILE	
echo >> $LOGFILE	
pstack $i >> $LOGFILE	
done	

www.enkitec.com	
  	
  

15	
  	
  	
  
The	
  stack	
  trace	
  

This	
  is	
  where	
  the	
  
process	
  execuNon	
  
currently	
  is	
  
#1 0x00000000032ed6d7
#2 0x00000000032e9e30
#3 0x0000000003281c10
#4 0x00002af99df1758d
Cluster	
  services	
  
#5 0x00002af99df13daa
communicaNon	
  
#6 0x00002af99df124e6
funcNons	
  
#7 0x00002af99df120a3
#8 0x00002af99df10c18
#9 0x00002af99defa9e0
#10 0x00002af99defbad3
#11 0x0000000006eaf951
#12 0x0000000003aff6c2
#13 0x0000000003b00f07
#14ASM	
  file	
  -­‐>	
  Physical	
  
0x0000000003ae342c
device	
  address	
  
#15 0x0000000003adcf9f
#16 0x0000000003a0f19b
translaNon!	
  
#17 0x0000000005c7fb57
#18 0x0000000005c81f3a
#19 0x0000000005c7e5e9
#20 0x0000000005c7b9ad
#21 0x0000000005c7b366
#22 0x0000000005c4c1db
#23 0x0000000005c48574
#24 0x0000000007c3f837
#25 0x0000000007c3df1d

in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in
in

#26 0x0000000001a01286 in kcfrbd ()	
ntevpque ()	
#27 0x0000000000e01407 in kcbzib ()	
ntevqone ()	
#28 0x0000000007a7451b in kcbgcur ()	
nsevwait ()	
#29 0x0000000000d130de in ktbgcur ()	
clsc_nswait () 	
#30 0x0000000007a15b5f in ktspfpblk ()	
clsc_select_ext () 	
#31 0x0000000007a1458d in ktspfsrch ()	
clsc_receive_wait () 	
#32 0x0000000007a13f01 in ktspscan_bmb ()	
clscreceive () 	
#33 0x0000000007a1351f in ktspgsp_main ()	
clscconnect ()	
#34 0x0000000001427ec4 in kdisnew ()	
clsssInitNative ()	
#35 0x00000000014258cc in kdisnewle ()	
clsssinit ()	
#36 0x000000000140ca16 in kdisle ()	
#37 0x00000000013c6899 in kdiins0 ()	
kgxgncin ()	
#38 0x00000000013d7d6c in kdiinsp ()	
kfmsInit ()	
#39 0x0000000007aa8516 in kauxsin ()	
kfmsSlvReg ()	
#40 0x0000000007ca0881 in qesltcLoadIndexList ()	
kfmdSlvOpPriv ()	
#41 0x0000000007ca04f9 in qesltcLoadIndexes ()	
kfmEnslave ()	
#42 0x0000000007c806fc in
kfddsGet ()	
__PGOSF606_qerltcNoKdtBufferedInsRowCBK ()	
kfioTranslateIO () 	
#43 0x0000000007c7e753 in qerltcSingleRowLoad ()	
kfioRqSetPrepare ()	
#44 0x0000000007c7d5e7 in qerltcFetch ()	
#45 0x0000000007bc742d in insexe ()	
kfioSubmitIO ()	
#46 0x0000000007c8f4c7 in opiexe ()	
kfioRequestPriv ()	
...	
kfioRequest ()	
...	
ksfd_kfioRequest ()	
#82 0x0000000001762cea in sou2o ()	
This	
  is	
  the	
  
ksfd_osmio ()	
#83 0x0000000000975483 in opimai_real ()	
“outmost”	
  
ksfd_io ()	
#84 0x00000000017682a1 in ssthrdmain ()	
funcNon	
  in	
  
ksfdread1 ()	
#85 0x00000000009753af in main ()	

the	
  stack	
  

www.enkitec.com	
  	
  

16	
  	
  	
  
Intermission:	
  How	
  ASM	
  works	
  
2.	
  Check	
  
ASM	
  extent	
  
pointer	
  
cache	
  in	
  the	
  
DB	
  instance	
  

1.	
  “Read	
  
ASM	
  datafile	
  
X	
  block	
  Y”	
  

DB	
  Server	
  
Process	
  

DATABASE	
  
INSTANCE	
  

ASM	
  Server	
  
Process	
  

ASM	
  
INSTANCE	
  
4.	
  Read	
  
the	
  block	
  
from	
  disk	
  
device	
  

DISK	
  DEVICE	
  
/dev/rdsk/xyz	
  

3.	
  Fetch	
  ASM	
  -­‐>	
  Physical	
  
disk	
  block	
  mapping	
  from	
  
ASM	
  instance!	
  (IPC	
  call!)	
  

DISK	
  DEVICE	
  
/dev/rdsk/xyz	
  

www.enkitec.com	
  	
  

SQL> @sgastat asm	
	
POOL
NAME
BYTES	
------------ -------------------------- ----------	
shared pool ASM KFFD SO
2648	
shared pool ASM extent pointer array
1784672	
shared pool ASM generic network state
2584	
shared pool ASM kfk state object
31544	
shared pool ASM map operations
30368	
large pool
ASM map operations hashta
393216	
shared pool ASM rollback operations
2648	
shared pool ASM scan context
3544	

17	
  	
  	
  
A	
  bug!	
  

Oyen	
  the	
  
already	
  
diagnosed	
  
bugs	
  have	
  a	
  
relevant	
  
stack	
  trace	
  
listed	
  in	
  the	
  
note!	
  

www.enkitec.com	
  	
  

18	
  	
  	
  
A	
  bug!	
  
•  Bug	
  8429716	
  	
  Clusteware	
  process	
  (ocssd/crsd/etc)	
  may	
  get	
  
too	
  low	
  file	
  descriptor	
  limit	
  (hangs	
  etc..)	
  
# ls –l /proc/`pgrep cssd.bin`/fd	
…	
lrwx------ 1 root root 64 Mar 29 04:11
lrwx------ 1 root root 64 Mar 29 04:11
lrwx------ 1 root root 64 Mar 29 04:11
lrwx------ 1 root root 64 Mar 29 04:11
…	
	
	

96
97
98
99

->
->
->
->

socket:[55795]	
socket:[55802]	
socket:[55835]	
socket:[55842]	

Number	
  of	
  fds	
  in	
  
use	
  reached	
  1024!	
  

•  11gR2	
  Grid	
  Infrastructure	
  Does	
  not	
  Use	
  ulimit	
  Sezng	
  
Appropriately	
  [ID	
  983715.1]	
  
Even	
  though	
  the	
  file	
  descriptor	
  array	
  and	
  maximum	
  limits	
  for	
  user	
  processes	
  had	
  been	
  
configured	
  correctly	
  (/etc/sysctl.conf	
  and	
  /etc/security/limits.conf),	
  thanks	
  to	
  the	
  
Oracle	
  bug,	
  the	
  cssd	
  daemon	
  didn't	
  pick	
  up	
  such	
  a	
  limit	
  (as	
  it's	
  scheduled	
  via	
  rc	
  startup	
  
scripts	
  as	
  root,	
  not	
  regular	
  users	
  logging	
  on).	
  Thus	
  the	
  fix	
  would	
  have	
  to	
  be	
  applied	
  
into	
  cssd	
  startup	
  script	
  to	
  bump	
  up	
  the	
  file	
  descriptor	
  limit	
  for	
  itself.	
  
www.enkitec.com	
  	
  

19	
  	
  	
  
Unistrumented	
  Wait	
  events?!	
  
•  None	
  of	
  these	
  wait	
  events	
  exist	
  in	
  Oracle	
  11.1:	
  
SQL> @sed css	
Show wait event descriptions matching %css%..	
	
EVENT# EVENT_NAME
------ ------------------------------------------------------848 CSS Xgrp shared operation
845 CSS group membership query
844 CSS group registration
843 CSS initialization
850 CSS operation: action
846 CSS operation: data query
847 CSS operation: data update
851 CSS operation: diagnostic
849 CSS operation: query
571 GCR CSS join retry
572 GCR member Data from CSS
565 IMR CSS join retry
	
SQL> @sed crs	
Show wait event descriptions matching %crs%..	
	
EVENT# EVENT_NAME

WAIT_CLASS
-------------------Other
Other
Other
Other	
Other
Other
Other
Other
Other
Other
Other
Other

PARAMETER1 	
-----------	
function_id	
group_name1	
group_name1	

WAIT_CLASS

PARAMETER1 	

function_id	
function_id	
function_id	
function_id	
function_id	
retry count	
retry count	
retry count	

------ ------------------------------------------------------- -------------------- -----------	
861 CRS call completion
Other
clsrrestype	

www.enkitec.com	
  	
  

20	
  	
  	
  
Thank	
  you	
  –	
  and	
  oh,	
  wait!	
  
•  New	
  seminars	
  in	
  2013	
  
•  Advanced	
  Oracle	
  TroubleshooNng	
  v2.1	
  (Feb-­‐March)	
  
•  Advanced	
  Oracle	
  SQL	
  Tuning	
  v2.0	
  (March-­‐April)	
  
•  Advanced	
  Exadata	
  Performance:	
  TroubleshooNng	
  and	
  OpNmizaNon	
  
•  h.p://blog.tanelpoder.com/seminar/	
  

	
  

•  QuesNons: 	
  tanel@tanelpoder.com	
  
•  Blog: 	
   	
  h.p://blog.tanelpoder.com	
  
•  ConsulNng:	
  h.p://www.enkitec.com	
  
www.enkitec.com	
  	
  

21	
  	
  	
  

Más contenido relacionado

La actualidad más candente

Adapting and adopting spm v04
Adapting and adopting spm v04Adapting and adopting spm v04
Adapting and adopting spm v04Carlos Sierra
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder
 
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTroubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTanel Poder
 
Oracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention TroubleshootingOracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention TroubleshootingTanel Poder
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsAnil Nair
 
SQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cSQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cTanel Poder
 
Why oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19cWhy oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19cSatishbabu Gunukula
 
Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsYour tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsJohn Kanagaraj
 
Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014John Beresniewicz
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1SolarWinds
 
Same plan different performance
Same plan different performanceSame plan different performance
Same plan different performanceMauro Pagano
 
Deep review of LMS process
Deep review of LMS processDeep review of LMS process
Deep review of LMS processRiyaj Shamsudeen
 
Oracle db performance tuning
Oracle db performance tuningOracle db performance tuning
Oracle db performance tuningSimon Huang
 
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleUnderstanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleGuatemala User Group
 
Oracle statistics by example
Oracle statistics by exampleOracle statistics by example
Oracle statistics by exampleMauro Pagano
 
Awr + 12c performance tuning
Awr + 12c performance tuningAwr + 12c performance tuning
Awr + 12c performance tuningAiougVizagChapter
 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
 
Oracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion EditionOracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion EditionMarkus Michalewicz
 

La actualidad más candente (20)

Adapting and adopting spm v04
Adapting and adopting spm v04Adapting and adopting spm v04
Adapting and adopting spm v04
 
Tanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools shortTanel Poder - Scripts and Tools short
Tanel Poder - Scripts and Tools short
 
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTroubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
 
AWR and ASH Deep Dive
AWR and ASH Deep DiveAWR and ASH Deep Dive
AWR and ASH Deep Dive
 
Oracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention TroubleshootingOracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention Troubleshooting
 
Oracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret InternalsOracle RAC 19c: Best Practices and Secret Internals
Oracle RAC 19c: Best Practices and Secret Internals
 
SQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12cSQL Monitoring in Oracle Database 12c
SQL Monitoring in Oracle Database 12c
 
Why oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19cWhy oracle data guard new features in oracle 18c, 19c
Why oracle data guard new features in oracle 18c, 19c
 
Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and AdvisorsYour tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
Your tuning arsenal: AWR, ADDM, ASH, Metrics and Advisors
 
Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
 
Same plan different performance
Same plan different performanceSame plan different performance
Same plan different performance
 
Deep review of LMS process
Deep review of LMS processDeep review of LMS process
Deep review of LMS process
 
Oracle db performance tuning
Oracle db performance tuningOracle db performance tuning
Oracle db performance tuning
 
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleUnderstanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
 
Oracle statistics by example
Oracle statistics by exampleOracle statistics by example
Oracle statistics by example
 
Awr + 12c performance tuning
Awr + 12c performance tuningAwr + 12c performance tuning
Awr + 12c performance tuning
 
Ash and awr deep dive hotsos
Ash and awr deep dive hotsosAsh and awr deep dive hotsos
Ash and awr deep dive hotsos
 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
 
Oracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion EditionOracle RAC Internals - The Cache Fusion Edition
Oracle RAC Internals - The Cache Fusion Edition
 

Similar a Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2

Linux Performance Tools 2014
Linux Performance Tools 2014Linux Performance Tools 2014
Linux Performance Tools 2014Brendan Gregg
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016Brendan Gregg
 
Linux Performance Tools
Linux Performance ToolsLinux Performance Tools
Linux Performance ToolsBrendan Gregg
 
Empower my sql server administration with 5.7 instruments
Empower my sql server administration with 5.7 instrumentsEmpower my sql server administration with 5.7 instruments
Empower my sql server administration with 5.7 instrumentsMarco Tusa
 
AWR, ADDM, ASH, Metrics and Advisors.ppt
AWR, ADDM, ASH, Metrics and Advisors.pptAWR, ADDM, ASH, Metrics and Advisors.ppt
AWR, ADDM, ASH, Metrics and Advisors.pptbugzbinny
 
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1Tanel Poder
 
Analyze database system using a 3 d method
Analyze database system using a 3 d methodAnalyze database system using a 3 d method
Analyze database system using a 3 d methodAjith Narayanan
 
UKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksUKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksKyle Hailey
 
Analyzing and Interpreting AWR
Analyzing and Interpreting AWRAnalyzing and Interpreting AWR
Analyzing and Interpreting AWRpasalapudi
 
Oracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmastersOracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmastersKyle Hailey
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeWim Godden
 
OSSEC @ ISSA Jan 21st 2010
OSSEC @ ISSA Jan 21st 2010OSSEC @ ISSA Jan 21st 2010
OSSEC @ ISSA Jan 21st 2010wremes
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf toolsBrendan Gregg
 
Oracle forensics 101
Oracle forensics 101Oracle forensics 101
Oracle forensics 101fangjiafu
 
Performance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla ClusterPerformance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla ClusterScyllaDB
 
200603ash.pdf Performance Tuning Oracle DB
200603ash.pdf Performance Tuning Oracle DB200603ash.pdf Performance Tuning Oracle DB
200603ash.pdf Performance Tuning Oracle DBcookie1969
 
Oracle Database In-Memory Option in Action
Oracle Database In-Memory Option in ActionOracle Database In-Memory Option in Action
Oracle Database In-Memory Option in ActionTanel Poder
 
In Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry OsborneIn Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry OsborneEnkitec
 
When the OS gets in the way
When the OS gets in the wayWhen the OS gets in the way
When the OS gets in the wayMark Price
 

Similar a Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2 (20)

Linux Performance Tools 2014
Linux Performance Tools 2014Linux Performance Tools 2014
Linux Performance Tools 2014
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Linux Performance Tools
Linux Performance ToolsLinux Performance Tools
Linux Performance Tools
 
Empower my sql server administration with 5.7 instruments
Empower my sql server administration with 5.7 instrumentsEmpower my sql server administration with 5.7 instruments
Empower my sql server administration with 5.7 instruments
 
Quick Wins
Quick WinsQuick Wins
Quick Wins
 
AWR, ADDM, ASH, Metrics and Advisors.ppt
AWR, ADDM, ASH, Metrics and Advisors.pptAWR, ADDM, ASH, Metrics and Advisors.ppt
AWR, ADDM, ASH, Metrics and Advisors.ppt
 
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 1
 
Analyze database system using a 3 d method
Analyze database system using a 3 d methodAnalyze database system using a 3 d method
Analyze database system using a 3 d method
 
UKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksUKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction Locks
 
Analyzing and Interpreting AWR
Analyzing and Interpreting AWRAnalyzing and Interpreting AWR
Analyzing and Interpreting AWR
 
Oracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmastersOracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmasters
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
OSSEC @ ISSA Jan 21st 2010
OSSEC @ ISSA Jan 21st 2010OSSEC @ ISSA Jan 21st 2010
OSSEC @ ISSA Jan 21st 2010
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
Oracle forensics 101
Oracle forensics 101Oracle forensics 101
Oracle forensics 101
 
Performance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla ClusterPerformance Monitoring: Understanding Your Scylla Cluster
Performance Monitoring: Understanding Your Scylla Cluster
 
200603ash.pdf Performance Tuning Oracle DB
200603ash.pdf Performance Tuning Oracle DB200603ash.pdf Performance Tuning Oracle DB
200603ash.pdf Performance Tuning Oracle DB
 
Oracle Database In-Memory Option in Action
Oracle Database In-Memory Option in ActionOracle Database In-Memory Option in Action
Oracle Database In-Memory Option in Action
 
In Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry OsborneIn Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry Osborne
 
When the OS gets in the way
When the OS gets in the wayWhen the OS gets in the way
When the OS gets in the way
 

Más de Tanel Poder

Low Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesLow Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesTanel Poder
 
Modern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application TroubleshootingModern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application TroubleshootingTanel Poder
 
GNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for DatabasesGNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for DatabasesTanel Poder
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid WorldTanel Poder
 
Connecting Hadoop and Oracle
Connecting Hadoop and OracleConnecting Hadoop and Oracle
Connecting Hadoop and OracleTanel Poder
 
Oracle Exadata Performance: Latest Improvements and Less Known Features
Oracle Exadata Performance: Latest Improvements and Less Known FeaturesOracle Exadata Performance: Latest Improvements and Less Known Features
Oracle Exadata Performance: Latest Improvements and Less Known FeaturesTanel Poder
 
Tanel Poder Oracle Scripts and Tools (2010)
Tanel Poder Oracle Scripts and Tools (2010)Tanel Poder Oracle Scripts and Tools (2010)
Tanel Poder Oracle Scripts and Tools (2010)Tanel Poder
 
Oracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance TuningOracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance TuningTanel Poder
 

Más de Tanel Poder (8)

Low Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesLow Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling Examples
 
Modern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application TroubleshootingModern Linux Performance Tools for Application Troubleshooting
Modern Linux Performance Tools for Application Troubleshooting
 
GNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for DatabasesGNW01: In-Memory Processing for Databases
GNW01: In-Memory Processing for Databases
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid World
 
Connecting Hadoop and Oracle
Connecting Hadoop and OracleConnecting Hadoop and Oracle
Connecting Hadoop and Oracle
 
Oracle Exadata Performance: Latest Improvements and Less Known Features
Oracle Exadata Performance: Latest Improvements and Less Known FeaturesOracle Exadata Performance: Latest Improvements and Less Known Features
Oracle Exadata Performance: Latest Improvements and Less Known Features
 
Tanel Poder Oracle Scripts and Tools (2010)
Tanel Poder Oracle Scripts and Tools (2010)Tanel Poder Oracle Scripts and Tools (2010)
Tanel Poder Oracle Scripts and Tools (2010)
 
Oracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance TuningOracle LOB Internals and Performance Tuning
Oracle LOB Internals and Performance Tuning
 

Último

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2

  • 1. More  Complex  Performance  Issues  I’ve  seen   (Part  2)   Tanel  Põder   Enkitec     h.p://www.enkitec.com   h.p://blog.tanelpoder.com   www.enkitec.com     1      
  • 2. Intro:  About  me   •  Tanel  Põder   •  Former  Oracle  Database  Performance  geek   •  Present  Exadata  Performance  geek  ;-­‐)   •  My  Exadata  experience   •  …  in  the  last  couple  of  years…   •  …  I  have  had  the  luck  to  work  with  all   possible  Exadata  configuraNons  out  there   •  Exadata  V1  …  X2-­‐8   •  MulN-­‐rack  Exadatas  …   •  Even  a  mixed  rack  Exadata  (V2  <-­‐>  X2-­‐2  :)   Expert  Oracle  Exadata   book   (with  Kerry  Osborne  and   Randy  Johnson)   www.enkitec.com     2      
  • 3. Random  Session  Hangs   •  Environment:   •  Oracle  11.1  Database  on  Linux   •  4  CPUs   •  Running  on  ASM   •  Symptoms:   •  Sudden  slowness  of  the  database,  lasNng  for  a  few  minutes   •  Some  long  TX,  TM,  CF  enqueue  waits   •  Some  sessions  completely  stuck,  some  showing  IO  waits,  some  CPU     •  First  hunch:   •  Seemed  quite  random  and  weird   •  Maybe  slow/hung  IO?   www.enkitec.com     3      
  • 4. AWR  Report   •  ApplicaNon  locking  problem,  right?   •  Very  long  IO  waits…   •  The  applicaNon  locks  may  be  held  for  so  long  because  of   some  other  task  (while  holding  the  lock)  takes  so  long?     www.enkitec.com     4      
  • 5. Finding  the  blockers  from  ASH   SELECT SESSION_STATE , EVENT , P1TEXT ||'='||P1 p1 , BLOCKING_SESSION_STATUS , BLOCKING_INST_ID , BLOCKING_SESSION , BLOCKING_SESSION_SERIAL# , COUNT(DISTINCT session_id) , COUNT(*) FROM dba_hist_active_sess_history w WHERE sample_time BETWEEN timestamp'2011-03-22 13:48:00' AND timestamp'2011-03-22 13:50:00' AND event LIKE 'enq%' GROUP BY SESSION_STATE , EVENT , P1TEXT ||'='||P1 , BLOCKING_SESSION_STATUS , BLOCKING_INST_ID , BLOCKING_SESSION , BLOCKING_SESSION_SERIAL# ORDER BY COUNT(*) DESC www.enkitec.com     Finding  the  blocking  session  SID  is  just  the  first   step,  you  really  want  to  know  what  is  that   blocking  session  itself  doing.       In  other  words,  where  is  it  stuck  so  that  it  hasn’t   released  that  lock  yet.   You  can  use  one  of  the  many  lock  tree  scripts  /   tools  for  finding  the  ulNmate  blocker.     Note  that  Oracle  11.2  has  a   FINAL_BLOCKING_SESSION  column  in  V $SESSION  and  ASH  showing  the  ulNmate   blocker.   5      
  • 6. Blocking  Tree   Many  of  the  blockers  ulNmately   wait  for  SQL*Net  message  to  client   wait  event  ?!!!   www.enkitec.com     Many  blocked  sessions  are  waiNng   for  read  by  other  session  IO  wait.   Such  wait  had  lasted  for  minutes   6      
  • 7. More  blocking  trees   Looks  like  an   IO  issue!   www.enkitec.com     7      
  • 8. SuspecNng  an  I/O  issue?   •  As  these  I/O  waits  suggested…   •  The  obvious  next  things  to  check:   •  How  much  I/O  are  you  actually  doing  –  from  OS  level  metrics     •  The  OS  level  metrics  (iostat  and  sar)  did  not  indicate  an   obvious  IO  problem!   NB!  This  example  is   from  my  laptop  as  I   don’t  have  the  real   output  anymore.   •  The  IO  Nmes  (in  iostat)  were  OK:     $ iostat –x 5 Device: sda sda1 sda2 dm-0 dm-1 rrqm/s 49.72 0.01 49.71 wrqm/s r/s w/s 43.03 55.69 22.40 0.03 0.00 0.00 42.99 55.69 22.40 rsec/s 3166.72 0.01 3166.70 wsec/s avgrq-sz avgqu-sz 553.49 47.64 0.24 0.07 60.26 0.00 553.43 47.64 0.24 0.00 0.00 0.00 30.91 10.46 0.00 74.49 55.81 2570.75 595.95 106.94 446.48 www.enkitec.com     64.71 8.00 0.07 0.62 await 3.11 2.18 3.11 svctm 0.23 0.66 0.23 %util 1.80 0.00 1.80 1.58 4.77 0.25 0.08 1.03 1.05 8      
  • 9. OEM  ASH  AcNvity  breakdown     •  We  know  that  many  of  the  sessions  were  hung  waiNng  for  IO   related  wait  events   •  …but  some  were  ulNmately  blocked  by  SQL*Net  message  to  client   •  Let’s  peek  around  further  in  the  database:   www.enkitec.com     What,  CPU   load  over  50   on  a  4  CPU   machine?!   9      
  • 10. OEM  Performance  page   •  No  CPU  problem.  User  I/O,  Commit  and  ApplicaNon  waits   This  data  comes   from  OS     (v$osstat)  so   should  be  reliable   www.enkitec.com     But  the  Performance   Page  doesn’t  show  CPU   load  that  we  saw  on  the   (ASH)  AcNvity  Detail?   10      
  • 11. Go  to  the  source  (OS)   •  Sar  &  vmstat  data:  No  CPU  starvaNon!   procs r b 5 0 0 0 0 0 -----------memory---------- ---swap-- -----io---- --system-swpd free buff cache si so bi bo in cs 143272 264980 261616 6970896 0 0 3164 319 3 1 143272 257376 261616 6970568 0 0 840 23 6351 8484 143272 261748 261616 6970952 0 0 0 3535 5303 7740 -----cpu------ us sy id wa st 14 3 77 6 0 11 8 73 8 0 7 1 89 2 0 •  Whom  to  trust?   •  OS  tools,  V$OSSTAT  and  Load  figures  in  EM  Performance  Page  ask  for  the   CPU  usage  figures  from  OS  –  so  are  ok   •  The  ASH  data  (and  EM  AcNvity  page)  assume  that  any  session  not  marked   as  “waiNng”  in  V$SESSION  is  on  CPU!   •  h.p://blog.tanelpoder.com/2007/06/18/advanced-­‐oracle-­‐troubleshooNng-­‐guide-­‐ when-­‐the-­‐wait-­‐interface-­‐is-­‐not-­‐enough-­‐part-­‐1/   •  h.p://oracledoug.com/serendipity/index.php?/archives/1432-­‐Time-­‐Ma.ers-­‐DB-­‐ CPU.html   www.enkitec.com     11      
  • 12. Checkpoint   •  Something  weird  is  going  on!     •  Oracle  says  many  sessions  are  on  on  CPU,  when  they  really   aren’t   •  Oracle  says  sessions  are  waiNng  for  IO  wait  events  a  lot,   while  not  much  IO  acNvity  was  going  on   •  …  and  the  OS  level  IO  metrics  didn’t  show  long  IO   compleNon  Nmes  either   The  IO  hangs  can  be   tricky  to  diagnose  as   the  iostat  figures  are   updated  when  the  IO   actually  completes*   •  Many  sessions  reported  doing  IO  by  Oracle  are  blocked  by  a   session  waiNng  for  SQL*Net  message  to  client   www.enkitec.com     12      
  • 13. Time  to  get  systemaNc   •  …  and  see  what  these  hung  processes  are  really  doing!   •  Did  I  hear  someone  saying  process  stack?!  ;-­‐)   •  Reminder:  Oracle  is  just  another  program  wri.en  in  C   •  The  process  stack  will  show  in  which  of  those  C  funcNons  the   problemaNc  process  execuNon  (hang)  currently  is!   •  All  major  Unix  plavorms  have  pstack  (procstack  on  AIX)   •  Oradebug  short_stack  /  dump  errorstack  would  also  do  it  *   •  However  the  hangs  were  sporadic…   www.enkitec.com     I  prefer  OS   pstack  as  it’s   cleaner   13      
  • 14. @mon_stack.sql  for  waiNng  for  lisNng  the  blocker   •  When  the  Nme  is  right:   -- STEP 1 DEFINE threshold=&1 -- First sleep and monitor V$SESSION to find long waits -- in the database -- STEP 2 SELECT 'ULTIMATE_BLOCKER_'||TRIM(s.type) ||'= '||TRIM(osid) blocking_spid , w.in_wait_secs -- This PL/SQL block will just keep running until a -- long enough wait is seen DECLARE l_threshold NUMBER := &threshold; l_max_wait NUMBER; BEGIN WHILE TRUE LOOP , w.pid , w.sid , w.in_wait , w.wait_event , w.p1 , w.p2 , w.p3 FROM SELECT MAX(seconds_in_wait) INTO l_max_wait FROM v$session WHERE state = 'WAITING' AND wait_class != 'Idle'; IF l_max_wait > l_threshold THEN EXIT; END IF; DBMS_LOCK.SLEEP(30); END LOOP; END; / v$wait_chains w , v$session s WHERE w.sid = s.sid AND w.sess_serial# = s.serial# AND w.blocker_sid IS NULL AND w.num_waiters > 0 / -- Exit script EXIT www.enkitec.com     14      
  • 15. Wait  unNl  the  hang   happens   mon_hang_stack.sh   sqlplus -s $ORA_LOGON @mon_stack $THRESHOLD > $TMPFILE ULTIMATE_BLOCKERS=`grep ULTIMATE_BLOCKER_USER $TMPFILE | awk '{ print $2 }'` echo >> $LOGFILE cat $TMPFILE >> $LOGFILE echo >> $LOGFILE echo DATE=`date +"%Y-%d-%m %H:%M:%S"` ULTIMATE_BLOCKERS=$ULTIMATE_BLOCKERS >> $LOGFILE for i in $ULTIMATE_BLOCKERS ; do echo >> $LOGFILE echo DATE=`date +"%Y-%d-%m %H:%M:%S"` running pstack on PID=$i >> $LOGFILE echo >> $LOGFILE echo Stack trace 1 >> $LOGFILE echo >> $LOGFILE pstack $i >> $LOGFILE sleep 1 echo >> $LOGFILE echo Stack trace 2 >> $LOGFILE echo >> $LOGFILE Wait  unNl  the  hang   happens  (the  mon_stack   script  exits  only  when  it   detects  a  long  enough  wait   and  then  proceed  to   pstack’ing  the  ulNmate   blocker  PIDs   pstack $i >> $LOGFILE sleep 1 echo >> $LOGFILE echo Stack trace 3 >> $LOGFILE echo >> $LOGFILE pstack $i >> $LOGFILE done www.enkitec.com     15      
  • 16. The  stack  trace   This  is  where  the   process  execuNon   currently  is   #1 0x00000000032ed6d7 #2 0x00000000032e9e30 #3 0x0000000003281c10 #4 0x00002af99df1758d Cluster  services   #5 0x00002af99df13daa communicaNon   #6 0x00002af99df124e6 funcNons   #7 0x00002af99df120a3 #8 0x00002af99df10c18 #9 0x00002af99defa9e0 #10 0x00002af99defbad3 #11 0x0000000006eaf951 #12 0x0000000003aff6c2 #13 0x0000000003b00f07 #14ASM  file  -­‐>  Physical   0x0000000003ae342c device  address   #15 0x0000000003adcf9f #16 0x0000000003a0f19b translaNon!   #17 0x0000000005c7fb57 #18 0x0000000005c81f3a #19 0x0000000005c7e5e9 #20 0x0000000005c7b9ad #21 0x0000000005c7b366 #22 0x0000000005c4c1db #23 0x0000000005c48574 #24 0x0000000007c3f837 #25 0x0000000007c3df1d in in in in in in in in in in in in in in in in in in in in in in in in in #26 0x0000000001a01286 in kcfrbd () ntevpque () #27 0x0000000000e01407 in kcbzib () ntevqone () #28 0x0000000007a7451b in kcbgcur () nsevwait () #29 0x0000000000d130de in ktbgcur () clsc_nswait () #30 0x0000000007a15b5f in ktspfpblk () clsc_select_ext () #31 0x0000000007a1458d in ktspfsrch () clsc_receive_wait () #32 0x0000000007a13f01 in ktspscan_bmb () clscreceive () #33 0x0000000007a1351f in ktspgsp_main () clscconnect () #34 0x0000000001427ec4 in kdisnew () clsssInitNative () #35 0x00000000014258cc in kdisnewle () clsssinit () #36 0x000000000140ca16 in kdisle () #37 0x00000000013c6899 in kdiins0 () kgxgncin () #38 0x00000000013d7d6c in kdiinsp () kfmsInit () #39 0x0000000007aa8516 in kauxsin () kfmsSlvReg () #40 0x0000000007ca0881 in qesltcLoadIndexList () kfmdSlvOpPriv () #41 0x0000000007ca04f9 in qesltcLoadIndexes () kfmEnslave () #42 0x0000000007c806fc in kfddsGet () __PGOSF606_qerltcNoKdtBufferedInsRowCBK () kfioTranslateIO () #43 0x0000000007c7e753 in qerltcSingleRowLoad () kfioRqSetPrepare () #44 0x0000000007c7d5e7 in qerltcFetch () #45 0x0000000007bc742d in insexe () kfioSubmitIO () #46 0x0000000007c8f4c7 in opiexe () kfioRequestPriv () ... kfioRequest () ... ksfd_kfioRequest () #82 0x0000000001762cea in sou2o () This  is  the   ksfd_osmio () #83 0x0000000000975483 in opimai_real () “outmost”   ksfd_io () #84 0x00000000017682a1 in ssthrdmain () funcNon  in   ksfdread1 () #85 0x00000000009753af in main () the  stack   www.enkitec.com     16      
  • 17. Intermission:  How  ASM  works   2.  Check   ASM  extent   pointer   cache  in  the   DB  instance   1.  “Read   ASM  datafile   X  block  Y”   DB  Server   Process   DATABASE   INSTANCE   ASM  Server   Process   ASM   INSTANCE   4.  Read   the  block   from  disk   device   DISK  DEVICE   /dev/rdsk/xyz   3.  Fetch  ASM  -­‐>  Physical   disk  block  mapping  from   ASM  instance!  (IPC  call!)   DISK  DEVICE   /dev/rdsk/xyz   www.enkitec.com     SQL> @sgastat asm POOL NAME BYTES ------------ -------------------------- ---------- shared pool ASM KFFD SO 2648 shared pool ASM extent pointer array 1784672 shared pool ASM generic network state 2584 shared pool ASM kfk state object 31544 shared pool ASM map operations 30368 large pool ASM map operations hashta 393216 shared pool ASM rollback operations 2648 shared pool ASM scan context 3544 17      
  • 18. A  bug!   Oyen  the   already   diagnosed   bugs  have  a   relevant   stack  trace   listed  in  the   note!   www.enkitec.com     18      
  • 19. A  bug!   •  Bug  8429716    Clusteware  process  (ocssd/crsd/etc)  may  get   too  low  file  descriptor  limit  (hangs  etc..)   # ls –l /proc/`pgrep cssd.bin`/fd … lrwx------ 1 root root 64 Mar 29 04:11 lrwx------ 1 root root 64 Mar 29 04:11 lrwx------ 1 root root 64 Mar 29 04:11 lrwx------ 1 root root 64 Mar 29 04:11 … 96 97 98 99 -> -> -> -> socket:[55795] socket:[55802] socket:[55835] socket:[55842] Number  of  fds  in   use  reached  1024!   •  11gR2  Grid  Infrastructure  Does  not  Use  ulimit  Sezng   Appropriately  [ID  983715.1]   Even  though  the  file  descriptor  array  and  maximum  limits  for  user  processes  had  been   configured  correctly  (/etc/sysctl.conf  and  /etc/security/limits.conf),  thanks  to  the   Oracle  bug,  the  cssd  daemon  didn't  pick  up  such  a  limit  (as  it's  scheduled  via  rc  startup   scripts  as  root,  not  regular  users  logging  on).  Thus  the  fix  would  have  to  be  applied   into  cssd  startup  script  to  bump  up  the  file  descriptor  limit  for  itself.   www.enkitec.com     19      
  • 20. Unistrumented  Wait  events?!   •  None  of  these  wait  events  exist  in  Oracle  11.1:   SQL> @sed css Show wait event descriptions matching %css%.. EVENT# EVENT_NAME ------ ------------------------------------------------------848 CSS Xgrp shared operation 845 CSS group membership query 844 CSS group registration 843 CSS initialization 850 CSS operation: action 846 CSS operation: data query 847 CSS operation: data update 851 CSS operation: diagnostic 849 CSS operation: query 571 GCR CSS join retry 572 GCR member Data from CSS 565 IMR CSS join retry SQL> @sed crs Show wait event descriptions matching %crs%.. EVENT# EVENT_NAME WAIT_CLASS -------------------Other Other Other Other Other Other Other Other Other Other Other Other PARAMETER1 ----------- function_id group_name1 group_name1 WAIT_CLASS PARAMETER1 function_id function_id function_id function_id function_id retry count retry count retry count ------ ------------------------------------------------------- -------------------- ----------- 861 CRS call completion Other clsrrestype www.enkitec.com     20      
  • 21. Thank  you  –  and  oh,  wait!   •  New  seminars  in  2013   •  Advanced  Oracle  TroubleshooNng  v2.1  (Feb-­‐March)   •  Advanced  Oracle  SQL  Tuning  v2.0  (March-­‐April)   •  Advanced  Exadata  Performance:  TroubleshooNng  and  OpNmizaNon   •  h.p://blog.tanelpoder.com/seminar/     •  QuesNons:  tanel@tanelpoder.com   •  Blog:    h.p://blog.tanelpoder.com   •  ConsulNng:  h.p://www.enkitec.com   www.enkitec.com     21