Search This Blog

Monday, December 10, 2012

RAC common wait events.

1) Global cache blocks lost- This statistic shows block losses during network
transfers. High values of this statistic indicate network problems.
The use of an unreliable IPC protocol, such as UDP, may result in the value
for lost global cache blocks being non-zero. 

High values for this statistics indicates that there is some problem with the IPC,
network or hardware.

2) Global cache blocks corrupt - This statistic shows if there is any block corruption
during interconnect transfers. High value for this statistic indicates
that there is a IPC,network or hardware problem.

3) global cache open s and global cache open x - These events are generated when
an instance initialy fetches data blocks. The duration of the wait event should be 
short.

This wait event is generated when the blocks being requested are not in the 
cache of any instance in the cluster, which in turn results into reads from disk.

Another reason for this wait event can be that the blocks cannot be fetched 
from other instances cache and becuase of that there is a disk read.

One way to reduce this wait event is to preload the buffer cache with frequently
accessed tables.


4) global cache null to s and global cache null to x - These wait events are
generated whenever there is a inter-instance block ping across the network.

Inter-instance block ping occurs when two instances exchange the
same block between each other repeatedly.

Processes waiting for global cache null to s events are waiting for
a block to be transferred from the instance that last changed it.

This event consumes a large proportion of wait time, When one instance 
frequently requests cached data blocks from the other RAC instances.

Recommended method to reduce this wait event is to reduce number of rows
per block to reduce block swapping among nodes.

5) Global cache cr request - This event is generated when an instance requested a
consistent read data block and the block to be transferred has not arrived to
the instance who had requested it.

6) gc cr block lost - Possible reasons for this event are as following:

i) Network problems(discarded packets and fragments, packet reassembly or timeouts,
   buffer overflows etc).

ii) Checksum errors or corrupted headers.

Possible solution is to check our entire network layer for problems ex NIC,switch etc.


7) gc buffer busy - GC buffer busy means that the buffer in the buffer cache, that the 
session is trying to access is already involved in another ongoing global cache operation. 
Until that global cache operation completes, session must wait. 
Possible reasons for this event may be due to CPU starvation issues, Swapping issues, interconnect 
issues etc.

8) congested - The events that contain "congested" suggest CPU saturation 
(runaway or spinning processes), long running queues, and network 
configuration issues. Excessive swapping in harddisk because of low memory can
also cause this event.

9) busy - The events that contain "busy" indicate contention. Investigation for
this event should be done by examining SQL with high cluster wait time or segments
with high interconnect block transfers.

10) Gc[current/cr][failure/retry] - This event means that due to network problems,
the sending instance needs to retry sending the block image.

This event happen when there is network or hardware problems.

11) Gc [current/cr] [2/3]-way - If we have a two-node cluster, then only a 2-way 
cluster is possible, as we can have at most two hops. If we have three or more 
RAC instances, then 2-way or 3-way cluster is possible. Events are received 
immediately after two or three network hops. 

12) Gc[current/cr] grant 2-way - A grant means, that an instance has requested
a block image and no other instance in the cluster has it in its buffer cache.

So, the requesting instance performs a disk i/o and gets the data from the
datafile.

A grant can be of two types "CR" or "Current".

A current grant reads the block from the datafiles.

A cr grant reads the block from disk and builds a read consistent block,
as of a certain time in past.

13) Gc[current/cr][block/grant] congested - A current or cr block is requested and a block or 
grant message is received. The congested hint implies that the request spent more than 1 ms in internal 
queues. Reasons for this event may include intensive CPU consumption, lack of memory, 
excessive paging and swapping.

14) Gc[current/cr] block busy - A current or cr block is requested and received,
but is not sent immediately by LMS which caused the delay in sending.

15) Gc current grant busy - A current block is requested and a grant message received. 
The busy hint means that the request is blocked for some reason or it
cannot be handled immediately.


16) Gc[current/cr][failure/retry] - A block is requested and a failure status
received or some other exceptional event has occured.


17) Gc buffer busy - If the time between buffer accesses becomes less than the time the 
buffer is pinned in memory, the buffer containing a block is said to become busy and as a result 
interested users may have to wait for it to be unpinned.





0 comments:

Post a Comment