0% found this document useful (0 votes)
153 views65 pages

RAC 12c Optimization

Oracle RAC

Uploaded by

Biku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
153 views65 pages

RAC 12c Optimization

Oracle RAC

Uploaded by

Biku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

RAC 12c optimization

By
Riyaj Shamsudeen

©OraInternals Riyaj Shamsudeen


Me

 20+ years using Oracle


products/DBA
 OakTable member
 Oracle ACE Director
 Specializes in RAC,
performance
tuning and Internals.
 Slowly in to BigData

 Email:
rshamsud@orainternals.com
 Blog :
orainternals.wordpress.com
 Web: www.orainternals .com
©OraInternals Riyaj Shamsudeen 2
Process architecture
RAC message flow
BL resources

 BL locks protects database blocks.

 BL resource follows a naming convention of


[Block_id ] [file_id], BL

[0xe7c2] [0x1] , [BL]

Block_id = 59330. File_id = 1


[ 0xe7c2 = 59330]

©OraInternals Riyaj Shamsudeen 5


Single block read

 Block is not in any buffer cache. LMS grants a PR mode lock on the
resource and asks FG to read from the disk.

FG FG FG
1
LMD LMD LMD
2
LMS LMS LMS

GRD Buffer 3 GRD Buffer GRD Buffer


SGA SGA SGA

Directory node for


[0x1ad3][0x7],[BL] the resource

FG – Foreground Process
PR mode lock LMD – Lock Manager Daemon
GRD – Global Resource Directory
Disk files

Demo: demo_01a.sql
©OraInternals Riyaj Shamsudeen 6
Trace lines

WAIT #18446741324875049632: nam='gc cr grant 2-way' ela= 499 p1=7 p2=6867 p3=1 obj#=76484
tim=4597940025
WAIT #18446741324875049632: nam='db file sequential read' ela= 758 file#=7 block#=6867 blocks=1
obj#=76484 tim=4597941129

 PR mode

KJBLNAME KJBLNAME2 KJBLGRANT KJBLROLE KJBLREQUES


-------------------- -------------------- ---------- -------- ----------
[0x1ad3][0x7],[BL] 6867,7,BL KJUSERPR 0 KJUSERNL

©OraInternals Riyaj Shamsudeen 7


GCS structures
A resource structure created in the directory
instance, a lock created in instance 2

X$bh BH Buffer

X$le LE

Shadow Shadow
X$kjbl [0x1ac4][0x7],[BL] [0x1ac4][0x7],[BL]

X$kjbr Resource
[0x1ac4][0x7],[BL] A shadow structure setup in instance
1 to keep track of the resource.
Instance 2 (directory instance) Instance 1

Demo: tc_one_row.sql, gcs_locks.sql gcs_resources.sql


©OraInternals Riyaj Shamsudeen 8
Single block transfer -2 way
 Block is in the directory instance in a compatible mode. Both block
transfer and grant performed by the LMS process running in instance 2.

FG FG FG
2
LMD LMD LMD
1
LMS LMS LMS

GRD Buffer GRD Buffer GRD Buffer


SGA SGA SGA

[0x1ad3][0x7],[BL]

[0x1ad3][0x7],[BL]
PR mode lock

PR mode lock
Disk files FG – Foreground Process
LMD – Lock Manager Daemon
GRD – Global Resource Directory

©OraInternals Riyaj Shamsudeen 9


GCS Directory instance

X$bh BH Buffer

X$le LE

Client
X$kjbl [0x1ac4][0x7],[BL]

X$kjbr Resource
[0x1ac4][0x7],[BL] A resource structure already exists still
that block is in the buffer cache.
Instance 2 (Directory instance)

Demo: demo_01a.sql and demo_01b.sql


©OraInternals Riyaj Shamsudeen 10
GCS shadows

X$bh BH Buffer BH Buffer

X$le LE LE

Client Shadow Shadow


X$kjbl [0x1ac4][0x7],[BL] [0x1ac4][0x7],[BL] [0x1ac4][0x7],[BL]

A set of GCS shadows (locks) setup


X$kjbr Resource on the resource in directory instance
[0x1ac4][0x7],[BL] and the requesting instance.

Instance 2 (directory instance) Instance 1

Demo: demo_01a.sql and demo_0a.sql


©OraInternals Riyaj Shamsudeen 11
Single block transfer -3 way
 Block is in the buffer cache of instance 3. Instance 2 is the directory
instance of the resource. LMS process transfers the blocks from instance
3 over the interconnect.
FG
3 FG FG

LMD 1 LMD LMD

LMS LMS LMS


2
GRD Buffer GRD Buffer GRD Buffer
SGA SGA SGA

Directory instance [0x1ad3][0x7],[BL]


[0x1ad3][0x7],[BL] for the resource
PR mode lock
PR mode lock
Disk files FG – Foreground Process
LMD – Lock Manager Daemon
GRD – Global Resource Directory

©OraInternals Riyaj Shamsudeen 12


CUR mode

 Concurrent changes to the same block.

 Row level lock vs BL lock.

 EX grants must be acquired to change blocks.

Demo: upd_one_row_100.sql, upd_one_row_101.sql


©OraInternals Riyaj Shamsudeen 13
CUR mode

 Two pending transactions in the same block.

FG LMS FG LMS

EX
PI EX

Buffer cache Buffer cache

©OraInternals Riyaj Shamsudeen 14


Buffer changes

 Changes under EX mode.

 Downgrade by other instances.

KJBLNAME KJBLNAME2 KJBLGRANT KJBLROLE KJBLREQUES


------------------------------ -------------------- ---------- -------- ----------
[0x1ac4][0x7],[BL][ext 0x0,0x0 6852,7,BL KJUSEREX 0 KJUSERNL

Enter value for block: 6852


STATE MODE_HELD LE_ADDR DBARFIL DBABLK CR_SCN_BAS CR_SCN_WRP CLASS
---------- ---------- ---------------- ---------- ---------- ---------- ---------- ----------
1 0 000000006D3E3AB0 7 6852 0 0 1

©OraInternals Riyaj Shamsudeen 15


CR buffers

 Instance 1 acquired EX mode lock.

 Instance 2 requests the block, and LMS in instance 1 ships CR copy.

FG LGWR LMS FG LMS

EX
Apply undo
CR CR

CR CR

Buffer cache Buffer cache


[0x1ad3][0x7],[BL]

EX mode lock

Demo: demo_03a.sql ,demo_03b.sql


©OraInternals Riyaj Shamsudeen 16
Busy

 gc cr block busy, gc current block

 LMS constructed buffer applying undo records.

 Excessive *busy events = No application affinity.

 Application affinity will reduce *busy events as the buffers will be


modified in the same instance.

©OraInternals Riyaj Shamsudeen 17


Congested

 Congested wait events also imply concurrency, but at an higher


level.

 If LMS process can not get to a request in 1ms time, then the
response for the request will be marked with ‘congestion’ wait
event.

 Review RT priority and LMS session/process metrics.

©OraInternals Riyaj Shamsudeen 18


RAC cluster root causes

 CPU / Memory starvation in a node.


 Log file write/ LGWR slowness.
 Network issues / packet drops.

 Excessive Dynamic Remastering activities.

 Excessive amount of global cache traffic- due to workload or


execution plan regression.

 Localized inserts in to a few blocks.


 Localized, excessive accesses to a few blocks.

©OraInternals Riyaj Shamsudeen


Golden rules of RAC diagnostics

1. Beware of top event tunnel vision.

2. Eliminate infrastructure as an issue.

3. Identify problem instance(s).

4. Review Send side metrics, and not just Receive side metrics.

5. Use histograms to identify any abnormalities, and not just


averages.

©OraInternals Riyaj Shamsudeen


Top event tunnel vision

 In RAC, the root cause can be hidden in other node and might
not show up in the Top-5 wait events.

 Impact of side effect events can be much, much worse then


actual root cause event itself.

 Performance of the instances are intertwined.

 Performance of background processes in one node, can affect


the application performance in the all other nodes.

©OraInternals Riyaj Shamsudeen


Top event tunnel vision ..2

Example 1

©OraInternals Riyaj Shamsudeen 22


Top event tunnel vision ..3

Example 2

©OraInternals Riyaj Shamsudeen 23


Top event tunnel vision ..4

Example 3

©OraInternals Riyaj Shamsudeen 24


Problem node

Example 3 (continued)

©OraInternals Riyaj Shamsudeen 25


gc buffer busy
A BL request for file #5,
block #8 is pending. gc buffer busy acquire

FG2
gc current request charge time to actual
wait event.

Inst 1
FG1
Wire
Open request Block
File #5, blk #8 send
LMS

Inst 2
Flush request Post

LGWR
gc buffer busy release

FG3

©OraInternals Riyaj Shamsudeen


gc buffer busy

 Event ‘gc buffer busy [acquire|release]’ is a symptom (usually).

 means there is a pending request for a BL lock for that block in


progress.

 All other processes wait for the BL lock to be available and charge
the time to gc buffer busy event.

©OraInternals Riyaj Shamsudeen


Gc buffer busy – Identify object

@ash_gcwait_to_obj.sql

INST_ID EVENT OWNER OBJECT_NAME OBJECT_TYPE CNT


---------- ------------------------ ------ ---------------- ----------------
1 gc buffer busy acquire RS T_GEN_INS_01_N1 INDEX 3
2 gc buffer busy acquire RS T_GEN_INS_01_N1 INDEX 10
2 gc buffer busy release RS T_GEN_INS_01 TABLE 4

©OraInternals Riyaj Shamsudeen 28


Gc buffer busy – Identify block

@ash_gcwait_to_block.sql
INST_ID EVENT CURRENT_FILE# CURRENT_BLOCK# CNT
---------- ------------------------------ ------------- -------------- ----------
2 gc buffer busy acquire 4 103582 4
2 gc buffer busy acquire 4 103607 3
2 gc buffer busy acquire 4 103603 3
1 gc buffer busy acquire 4 103582 2
2 gc buffer busy release 4 103615 2
1 gc buffer busy acquire 4 103583 1
2 gc buffer busy release 4 103586 1
2 gc buffer busy release 4 103613 1

In this example, many different blocks are involved in ‘gc buffer


busy’ waits. A symptom of heavy insert load.

Demo: ash_gcwait_to_block.sql
©OraInternals Riyaj Shamsudeen 29
Gc buffer busy – Identify block type

 Dump the block to identify the type and contents of the block.
alter system dump datafile 4 block min 103582 block max 103582;

 In this example, it is a leaf block of an index.


Block header dump: 0x0101949e
Object id on Block? Y
seg/obj: 0x13266 csc: 0x00.11c65d1 itc: 9 flg: E typ: 2 - INDEX
brn: 0 bdba: 0x1019498 ver: 0x01 opc: 0
inc: 0 exflg: 0
Itl Xid Uba Flag Lck Scn/Fsc
..
Leaf block dump
===============

Demo: dump_blocks.sql, tracefile.sql


©OraInternals Riyaj Shamsudeen 30
Object Block type Possible issue(s)
type
Table Segment header Freelists, freelist groups, deletes from
one node,ASSM bugs etc
Segment blocks Heavy insert workload, heavy update to
few blocks, SQL performance issues
scanning few objects aggressively.
Index Leaf block Numerous inserts on indexed columns,
sequence generated keys
Root Insert + numerous index scans,
block/branch concurrent inserts and deletes etc
block
Undo Undo header Numerous short transactions
block
Undo block Long pending transaction and CR block
generation
Dictionary SEQ$ (object) Sequences with nocache or order set
and excessive access to sequence.
©OraInternals Riyaj Shamsudeen 31
Golden rules of RAC diagnostics

1. Beware of top event tunnel vision.

2. Eliminate infrastructure as an issue.

3. Identify problem instance(s).

4. Review Send side metrics, and not just Receive side metrics.

5. Use histograms to identify any abnormalities, and not just


averages.

©OraInternals Riyaj Shamsudeen


gc current block 2-way

gc current request charge time to


‘gc current block 2-way’

Inst 1
FG1
Wire
Open request Block
File #5, blk #8 send
LMS

Inst 2
©OraInternals Riyaj Shamsudeen
Eliminate infra-structure as an issue

©OraInternals Riyaj Shamsudeen 34


Eliminate infra-structure as an issue

 Wait events ‘gc cr block 2-way’ , ‘gc cr block 3-way’ , ‘gc current
block 2-way’, and ‘gc current block 3-way’, ‘gc cr grant 2-way’, ‘gc
cr grant 2-way’.

 No concurrency or congestion issues factored in these events.

 The lowest wait time

 A wait time of <2ms is normal. In Exadata, <0.5ms

©OraInternals Riyaj Shamsudeen 35


Golden rules of RAC diagnostics

1. Beware of top event tunnel vision.

2. Eliminate infrastructure as an issue.

3. Identify problem instance(s).

4. Review Send side metrics, and not just Receive side metrics.

5. Use histograms to identify any abnormalities, and not just


averages.

©OraInternals Riyaj Shamsudeen


Identify problem-inducing instance

 Gv$instance_cache_transfer keeps track of the RX metrics at


both instance and class level.

©OraInternals Riyaj Shamsudeen 37


Identify problem inducing instance ..2
Receiving side analysis.

SELECT INSTANCE ||'->’ || inst_id transfer,


class, cr_block cr_blk,
Trunc(cr_block_time / cr_block / 1000, 2) avg_Cr,
current_block cur_blk,
Trunc(current_block_time / current_block / 1000, 2) avg_cur
FROM gv$instance_cache_transfer
WHERE cr_block > 0 AND current_block > 0
ORDER BY INSTANCE, inst_id, class
/

TRANS CLASS CR_BLK AVG_CR CUR_BLK AVG_CUR


----- ---------- ---------- ---------- ---------- ----------
1->2 data block 87934887 1.23 9834152 1.8
2->1 data block 28392332 1.30 1764932 2.1
...
3->1 data block 12519985 11.57 2231921 21.6
...
3->2 undo block 4676398 8.85 320 27.82

 Use script gc_identify_slow_inst.sql

©OraInternals Riyaj Shamsudeen 38


Golden rules of RAC diagnostics

1. Beware of top event tunnel vision.

2. Eliminate infrastructure as an issue.

3. Identify problem instance(s).

4. Review Send side metrics, and not just Receive side metrics.

5. Use histograms to identify any abnormalities, and not just


averages.

©OraInternals Riyaj Shamsudeen


Send side in an oval
A BL request for file #5,
block #8 is pending. gc buffer busy acquire

FG2
gc current request charge time to actual
wait event.

Inst 1
FG1
Wire
Open request Block
File #5, blk #8 send
LMS

Inst 2
Flush request Post

LGWR
gc buffer busy release

FG3

©OraInternals Riyaj Shamsudeen


Sending side analysis

gc cr block receive time=


Time to send message to a remote LMS process by FG
+ Time taken by LMS to build block (statistics: gc cr block build
time)
+ LMS wait for LGWR latency ( statistics: gc cr block flush time)
+ LMS send time (Statistics: gc cr block send time)
+ Wire latency. RX side
Instance 1:
----------
Avg global cache cr block receive time (ms) : 222.1
Avg global cache current block receive time (ms) : 27.5
Send side
Instance 2:
----------
Avg global cache cr block build time (ms) : 0.0
Avg global cache cr block send time (ms) : 0.1
Global cache log flushes for cr blocks served % : 2.7
Avg global cache cr block flush time (ms) : 15879.9

©OraInternals Riyaj Shamsudeen 41


Problem node

Global Cache and Enqueue Services - Workload Characteristics

Avg global enqueue get time (ms) : 0.1

Avg global cache cr block receive time (ms) : 14.4


Avg global cache current block receive time (ms): 23.4
Avg global cache cr block build time (ms) : 0.0
Avg global cache cr block send time (ms) : 0.0
Global cache log flushes for cr blocks served %: 25.0

Avg global cache cr block flush time (ms) : 2.5


Avg global cache current block pin time (ms) : 0.0
Avg global cache current block send time (ms): 0.0
Global cache log flushes for current blocks served %: 6.3
Avg global cache current block flush time (ms): 5.9

©OraInternals Riyaj Shamsudeen 42


Sending side analysis ..2

Avg message sent queue time (ms) : 0.1


Avg message sent queue time on ksxp (ms): 0.6
Avg message received queue time (ms): 0.0
Avg GCS message process time (ms) : 0.0
Avg GES message process time (ms) : 0.0
% of direct sent messages : 46.62
% of indirect sent messages : 43.76
% of flow controlled messages : 9.62

Avg message sent queue time (ms) : 0.0


Avg message sent queue time on ksxp (ms): 0.4
Avg message received queue time (ms) : 0.0
Avg GCS message process time (ms) : 0.0
Avg GES message process time (ms) : 0.0
% of direct sent messages : 60.86
% of indirect sent messages : 38.48
% of flow controlled messages : 0.66

©OraInternals Riyaj Shamsudeen 43


Problem node

Global Cache and Enqueue Services - Messaging Statistics

Avg message sent queue time (ms) : 344.7


Avg message sent queue time on ksxp (ms): 0.3
Avg message received queue time (ms): 0.0
Avg GCS message process time (ms) : 0.0
Avg GES message process time (ms) : 0.0
% of direct sent messages : 31.76
% of indirect sent messages : 46.12
% of flow controlled messages : 22.13

©OraInternals Riyaj Shamsudeen 44


Multi-tenancy

 Buffer cache and Global cache processing is common to all


PDBs.

 A PDB generating lot more GC workload can affect others.

 No methods to constrain the buffer cache or global resource


usage of a PDB.

 Resource manager only controls CPU, PX, and I/O(exadata).

©OraInternals Riyaj Shamsudeen 45


Prepare for multi-tenancy (RAC specific)

 Keep the buffer cache as large (for OLTP). Why?

 Make LGWR efficient. LMS waits for LGWR to ship blocks.

 Tune the SQL statements to reduce global cache traffic.

 Connect to the container database to review global cache metrics.

©OraInternals Riyaj Shamsudeen 46


Resource names

 From 12 onwards, resource names are coded with con_id.

select resource_name from gv$ges_resource


where resource_name like '[0x15f29][0x0],[TM]%'
/

RESOURCE_NAME
------------------------------
[0x15f29][0x0],[TM][ext 0x3,0x0] <- hrdb1 PDB – GSTEST table –object_id=89897
[0x15f29][0x0],[TM][ext 0x4,0x0] <- hrdb2 PDB – GSTEST table –object_id=89897

 Comes handy if you are debugging RAC trace files, to identify


the PDB generating the errors.

©OraInternals Riyaj Shamsudeen 47


GC statistics and PDBs

 Most Global cache statistics views do not provide granularity to a


pluggable database. For example,

select con_id, inst_id, count(*) from gv$instance_cache_transfer


group by con_id, inst_id
/
CON_ID INST_ID COUNT(*)
---------- ---------- ----------
0 2 4096
0 1 4096

 Review AWR reports from the container database to review


global cache performance issues.

©OraInternals Riyaj Shamsudeen 48


High Priority Processes (from 12c)

Parameter: _high_priority_processes
Value : LMS*|VKTM|LM*|LCK0|GCR*|DIAG


kjfmPriCheck: 0 RTLMS taken, 1 RTLMS available
kjfmPriCheck: automatic priority changes enabled - multi-inst mode
kjfmPriCheck: # of real time LMS increasing from 0 to 1

Parameter: _lm_lms_priority_dynamic
Value : TRUE

©OraInternals Riyaj Shamsudeen 49


gc cr grants 2-way

gc cr request charge time to


‘gc cr grant 2-way’

Inst 1
FG1
Wire
Open request Read from
File #5, blk #8 the disk
LMS

Inst 2
©OraInternals Riyaj Shamsudeen
Why DRM?

charge time to
‘gc cr grant 2-way’

Inst 1
FG1

LMS

Inst 2
Read from
the disk
Excessive amount of GC activity for
One object!

©OraInternals Riyaj Shamsudeen


DRM & grants

 Reduces RAC Tax: gc cr grants 2-way

 If the object is mastered locally, processes can read the block


directly without incurring any GC waits.

 Ash_gcwait_to_obj to identify objects suffering from ‘gc cr


grants 2-way’.

INST_ID OWNER OBJECT_NAME OBJECT_TYPE CNT


---------- -------------------- -------------------------------- -------------------- ----------
1 AR RA_CUSTOMER_TRX_ALL TABLE 9
1 INV MTL_MATERIAL_TRANSACTIONS TABLE 141
1 INV MTL_SERIAL_NUMBERS TABLE 155
1 Undo Block 253
1 INV MTL_SYSTEM_ITEMS_B TABLE 476
1 AP AP_CHECKS_ALL TABLE 785

Demo: remaster.sql tc_one_row remaster2.sql


©OraInternals Riyaj Shamsudeen 52
Local vs Remote

 74% remote grants. DRM can be useful here.


gc local grants 6,570,658 3,643.6 21.8
gc remote grants 19,262,806 10,681.7 63.9

 Increase SGA size to reduce single block I/O reads.

 Tuning SQL statements to reduce logical I/O, optimal indexes,


etc can help to improve the performance.

©OraInternals Riyaj Shamsudeen 53


DRM effect

Top 5 Timed Events Avg %Total


~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time Wait Class
------------------------------ ------------ ----------- ------ ------ ----------
gc buffer busy 1,826,073 152,415 83 62.0 Cluster
CPU time 30,192 12.3
enq: TX - index contention 34,332 15,535 453 6.3 Concurrency
gcs drm freeze in enter server 22,789 11,279 495 4.6 Other
enq: TX - row lock contention 46,926 4,493 96 1.8 Applicatio

Global Cache and Enqueue Services - Workload Characteristics


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg global enqueue get time (ms) : 16.8
Avg global cache cr block receive time (ms) : 17.1
Avg global cache current block receive time (ms): 14.9

©OraInternals Riyaj Shamsudeen 54


DRM (11g)
In 11g, all resources are frozen
Request queue during the reconfiguration.
LCK

LMD LMD LMD

LMON LMON LMON

LMS0 LMS1 LMSn LMS0 LMS1 LMSn LMS0 LMS1 LMSn

Resources

Inst 1 Inst 2 Inst 3

©OraInternals Riyaj Shamsudeen 55


DRM (12c)
In 12c, only set of resources in
Request queue a window is frozen.
LCK

LMD LMD LMD

LMON LMON LMON

LMS0 LMS1 LMSn LMS0 LMS1 LMSn LMS0 LMS1 LMSn

Resources

Inst 1 Inst 2 Inst 3

©OraInternals Riyaj Shamsudeen 56


DRM in 12c
DRM impact is decreased in 12c by freezing a resource partition, at a time..
* drm quiesce
2014-02-15 16:03:45.131840 : DRM(3) resources quiesced [0-1023], rescount 1719
2014-02-15 16:03:45.132173 : DRM(3) local converts quiesced [0-1023], lockcount 0, bucket 0
* drm sync 1
* drm freeze
* drm cleanup
* drm sync 2
* drm replay
* drm sync 3
* drm fix writes
* drm sync 4
* drm end

* DRM RCFG called (swin 0)


CGS recovery timeout = 85 sec
* drm quiesce
2014-02-15 16:03:45.172867 : DRM(3) resources quiesced [1024-2047], rescount 1754
2014-02-15 16:03:45.172932 : DRM(3) local converts quiesced [1024-2047], lockcount 0, bucket 0
* drm sync 1
* drm freeze

©OraInternals Riyaj Shamsudeen 57


PQ trace file
 PQ Co-ordinator trace shows Object checkpoint.
select /*+ parallel (a 4) */ min(length(v1)) from rs.hugetable a;
WAIT #18446741324874976768: nam='enq: KO - fast object checkpoint' ela= 866
name|mode=1263468550 2=65581 0=1 obj#=-1 tim=6965638229
...
WAIT #18446741324874976768: nam='enq: KO - fast object checkpoint' ela= 454
name|mode=1263468545 2=65581 0=2 obj#=-1 tim=6965638986
...

 PQ server process will perform direct reads to PGA. Notice that


there is no GC waits between the reads.
WAIT #18446741324874985288: nam='direct path read' ela= 4782 file number=4 first dba=11584
block cnt=16 obj#=76739 tim=3653439149
WAIT #18446741324874985288: nam='direct path read' ela= 16157 file number=4 first dba=11600
block cnt=16 obj#=76739 tim=3653456065
WAIT #18446741324874985288: nam='direct path read' ela= 3675 file number=4 first dba=11616
block cnt=16 obj#=76739 tim=3653462065
WAIT #18446741324874985288: nam='direct path read' ela= 8162 file number=4 first dba=11632
block cnt=16 obj#=76739 tim=3653471358
WAIT #18446741324874985288: nam='direct path read' ela= 10270 file number=4 first dba=11650
block cnt=14 obj#=76739 tim=3653482566

©OraInternals Riyaj Shamsudeen 58


Application issues

 There is no easy fix in 12c either 


 Avoid localized inserts.

©OraInternals Riyaj Shamsudeen 59


Application issues

 Hash partitioning the index/table might be helpful.

©OraInternals Riyaj Shamsudeen 60


Application issues

 Reduce localized accesses:


 Frequent access to a lookup table.

 Aggressive scanning of smaller tables.

 Aggressive nested loops joins accessing index leaf blocks.

 Ordered cached sequences – Excessive SV resource contention.

©OraInternals Riyaj Shamsudeen 61


Use Services

 While creating a service, you Inst 1


define a preferred and available
instances. PO
FIN

PO Inst 2 FIN

PO
FIN

Inst 3
For PO service: Instance 1 & 2 are
Preferred
preferred instances, and instance PO
3 is an available instance. Available
FIN
©OraInternals Riyaj Shamsudeen 62
Or PDBs

 PDB1 is open in inst1 & inst2. Inst 1


 PDB2 is open in inst2 & inst3
PDB1
PDB2

PO Inst 2 FIN

PDB1
PDB2

Inst 3
Online
PDB1
PDB2 Failover

©OraInternals Riyaj Shamsudeen 63


HugePages

 By default, pagesize is 4KB in Linux. PageTables size will be


huge, in the order of, GigaBytes.

 Kswapd consumes CPU heavily.

 Node reboots due to CRS issues.

 Pagesize is 2MB and pagetable usage is minimal.

©OraInternals Riyaj Shamsudeen 64


THANK YOU

 Email: rshamsud@orainternals.com
 Blog : orainternals.wordpress.com
 Web: www.orainternals.com

©OraInternals Riyaj Shamsudeen 65

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy