The DBA will be interested in the waits and
statistics for tuning shown in Table 14.1.
Statistic
or Wait |
Description |
Source
|
buffer busy
global cache
|
A wait
event that is signaled when a process waits for a block to be
available because another process is already obtaining a
resource for this block. |
gv$system_event, gv$session_wait
|
buffer busy
waits
|
A wait
event that is signaled when a process cannot get a buffer due to
another process using the buffer at that point in time. |
gv$system_event, gv$session_wait
|
cache
convert waits
|
A statistic
showing the total number of waits for all up-convert operations,
these are: global cache null to S, global cache null to X, and
global cache S to X. |
gv$sysstat
|
cache open
waits
|
A statistic
that shows the total number of waits for global cache open S and
global cache open X. |
gv$sysstat
|
consistent
gets
|
The
consistent gets statistic shows the number of buffers obtained
in consistent read (CR) mode. |
gv$sysstat
|
cr request
retry
|
A statistic
that quantifies when Oracle resubmits a consistent read request
due to detecting that the holding instance is no longer
available. |
gv$sysstat
|
db block
changes
|
The number
of current buffers that where obtained in exclusive mode for DML. |
gv$sysstat
|
db block
gets
|
The number
of current buffers that were obtained for a read. |
gv$sysstat
|
DBWR
cross-instance writes
|
These are
also forced writes and show the number of writes that an
instance had to perform to disk in order to make a previously
exclusively held block available for another instance.
Generally, DBWR cross-instance writes are eliminated due to
Cache Fusion unless a value greater than 0 (zero) is set for the
gc_files_to_locks parameter. |
gv$sysstat
|
global
cache bg acks |
This wait
event can only occur during the startup or shutdown of an
instance as the LMS process completes its operations. |
gv$system_event, gv$session_wait
|
global
cache busy |
This is a
wait event that accumulates when a session has waits for an
ongoing operation on the resource to complete. |
gv$system_event, gv$session_wait
|
global
cache cr cancel wait |
This is a
wait event that accumulates when a session waits for the
completion of an AST for a canceled block access request. The
canceling of the request is part of the Cache Fusion Write
Protocol. |
gv$system_event, gv$session_wait
|
global
cache converts |
This is a
statistic that shows the resource converts for buffer cache
blocks. Whenever GCS resources are converted from NULL to
SHARED, NULL to EXCLUSIVE or SHARED to EXCLUSIVE this statistic
is incremented. |
gv$sysstat
|
global
cache convert time |
This
statistics shows the accumulated time for global conversions on
GCS resources for all sessions. |
gv$sysstat
|
global
cache convert timeouts |
Whenever a
resource operation times out this statistic is incremented. |
gv$sysstat
|
global
cache cr block flush time
|
This
statistic shows the time waited for a log flush whenever a CR
request is served. This is part of the serve time. |
gv$sysstat
|
global
cache cr blocks received |
If a
process requests a consistent read for a data block that is not
in its local cache it has to send a request to another instance,
this statistic is incremented once the buffer has been received. |
gv$sysstat
|
global
cache cr block receive time |
This
statistic records the accumulated round trip time for all
requests for consistent read blocks. |
gv$sysstat
|
global
cache cr blocks served |
This
statistic shows the number of requests for a consistent read
block served by LMS. This statistic is incremented by Oracle
when the block is sent. |
gv$sysstat
|
global
cache cr block build time |
This
statistic shows the accumulated time that the LMS process needs
to create a consistent read block on the holding instance |
gv$sysstat
|
global
cache cr block send time |
This
statistic shows the time needed by LMS to begin a send of a
consistent read block. For send time, timing does not stop until
send has completed. Only the time it takes to initiate the send
is measured; the time elapsed before the block arrives at the
requesting instance is not included. |
gv$sysstat
|
global
cache cr cancel wait |
This is a
wait event that happens when a session waits for a canceled CR
request to complete its acquisition interrupt. The process of
canceling the CR request is part of the Cache Fusion Write
Protocol. |
gv$system_event, gv$session_wait
|
global
cache cr request |
This is a
wait event that happens because a process is made to wait for a
pending CR request to complete. The process must wait for either
shared access to a block to be granted before it can read the
block from disk, or it waits for the LMS of the holding instance
to send the block. |
gv$system_event, gv$session_wait
|
global
cache current block flush time |
This is a
statistic that shows the time it takes to flush the changes from
a block to disk before the block can be shipped to the
requesting instance. |
gv$sysstat
|
global
cache current block pin time |
This is a
statistic that shows the time it takes to pin a current block
before shipping it to a requesting instance. The pinning of a
block prevents further changes to the block while it is prepared
to be shipped. |
gv$sysstat
|
global
cache current blocks received |
This is a
statistic that shows the number of current blocks received over
the interconnect from the holding instance. |
gv$sysstat
|
global
cache current block receive time
|
This is a
statistic that shows the current blocks accumulated round trip
time for all requests. |
gv$sysstat
|
global
cache current block send time |
This is a
statistic that shows the time it takes to send the current block
over the interconnect to the requesting instance. |
gv$sysstat
|
global
cache current blocks served |
This is a
statistic that shows the number of current blocks shipped over
the interconnect to the requesting instance. |
gv$sysstat
|
global
cache freelist wait |
This is a
statistic that shows Oracle must wait after it detects that the
local element free list is empty. |
gv$sysstat
|
|
|
|
global
cache freelist waits |
This is a
statistic that shows the number of times that the resource
element free list was found empty by Oracle. |
gv$sysstat
|
global
cache gets |
This is a
statistic that shows the number of buffer gets that caused the
opening of a new GCS resource. |
gv$sysstat
|
global
cache get time |
This is a
statistic that shows the accumulated time for all sessions that
was needed to open a GCS resource for a local buffer. |
gv$sysstat
|
global
cache null to S |
A wait
event that occurs whenever a session has to wait for a resource
conversion to complete. |
gv$system_event, gv$session_wait
|
global
cache null to X |
This is a
wait event that occurs whenever a session has to wait for this
type of resource conversion to complete. |
gv$system_event, gv$session_wait
|
global
cache open S |
This is a
wait event that occurs when a session has to wait for receiving
permission for shared access to the requested resource. |
gv$system_event, gv$session_wait
|
global
cache open X |
This is a
wait event that occurs when a session has to wait for receiving
exclusive access to the requested resource. |
gv$system_event, gv$session_wait
|
global
cache S to X |
This is a
wait event that occurs whenever a session has to wait for this
type of resource conversion to complete. |
gv$system_event, gv$session_wait
|
global
cache pending ast |
This is a
wait event that can occur when a process waits for an
acquisition interrupt before Oracle closes a resource element. |
gv$system_event, gv$session_wait
|
global
cache pred cancel wait
|
This is a
wait event that occurs when a session must wait for the
acquisition interrupt to complete for a canceled predecessor
read request. The canceling of a predecessor read request is a
part of the Cache Fusion Write Protocol. |
gv$system_event, gv$session_wait
|
global
cache retry prepare
|
This is a
wait event that occurs whenever Oracle cannot ignore or skip a
failure to prepare a buffer for a consistent read or Cache
Fusion request. |
gv$system_event, gv$session_wait
|
global lock
async converts
|
This is a
statistic showing the number of resource converts from an
incompatible mode.
|
gv$sysstat
|
global lock
sync gets
|
This is a
statistic showing the number of synchronous GCS resources that
Oracle must open. These sync gets are usually for GES resources.
Library cache resources are one example. |
gv$sysstat
|
global lock
async gets
|
This is a
statistic showing the number of Ansynchronous GES resources that
Oracle must open. Normally, async gets include the number of
global cache gets and are only used for GES resources. |
gv$sysstat
|
global lock
get time
|
This is a
statistic that shows the accumulated open time for all GES
resources. |
gv$sysstat
|
global lock
sync converts
|
This
statistic shows the number of GES resources that Oracle
converted from an incompatible mode. Usually sync converts occur
for GES resources only. |
gv$sysstat |
global lock
convert time |
This is a
statistic that shows the accumulated global lock sync converts
and global lock async converts time. |
gv$sysstat
|
lock
buffers for read |
This is a
statistic that shows the number of NULL to SHARED up converts. |
gv$sysstat
|
lock gets
per transaction |
This is a
statistic that shows the number of global lock sync gets and
global lock async gets per transaction. |
gv$sysstat
|
lock
converts per transaction
|
This is a
statistic that shows the number of global local sync converts
and global lock async converts per transaction. |
gv$sysstat
|
messages
flow controlled |
This shows
the number of messages that are intended to be sent directly but
that were instead queued and delivered later by LMD/LMS. |
gv$dml_misc
|
messages
received
|
This
statistics shows the number of messages received by the LMD
process. |
gv$dml_misc
|
messages
sent directly
|
This
statistic shows the number of messages sent directly by Oracle
processes. |
gv$dml_misc
|
messages
sent indirectly
|
This
statistics shows the number of explicitly queued messages. |
gv$dml_misc
|
physical
reads
|
This is a
statistic that shows the total number of disk reads performed
because a request for a data block could not be satisfied from a
local cache. |
gv$sysstat
|
physical
writes
|
This
statistics shows the number of write I/Os performed by the DBWNn
processes. This number includes the number of DBWR cross
instance writes (forced writes) in Oracle Database 10g when
gc_files_to_locks is set. Setting gc_files_to_locks for a
particular datafile will enable the use of the old ping protocol
and will not leverage the Cache Fusion architecture.
|
gv$sysstat
|
remote
instance undo block writes
|
This is a
statistic that shows the number of undo blocks written to disk
by DBWn due to a forced write. |
gv$sysstat
|
remote
instance undo header writes
|
This is a
statistic that shows the number of rollback segment header
blocks written to disk by DBWn due to a forced write.
|
gv$sysstat
|
Table 14.1: Waits and Statistics for RAC
Monitoring from Oracle RAC Manual Glossary
Oracle has provided the racdiag.sql script that
can help troubleshoot RAC slowdowns; however, it has limited
applicability to RAC system tuning. It is suggested that STATSPACK
be used, combined with the selects provided in this chapter for RAC
tuning.
racdiag.sql is available at MOSC.oracle.com.
The class column in the gv$sysstat view
indicates the type of statistic. Oracle RAC related statistics are
in classes eight, 32, and 40.