Database Reference
In-Depth Information
Instance 1
Instance 2
RX Msg
Construct
message
Send
message
OS, Network
stack
CR/CUR
block build
MSG to
LGWR (if
needed)
wakeup
Log buffer
processing
Log file
write
Signal
LMS
Construct
message
Send
message
OS, Network
stack
Wakeup
Send block
LGWR
OS, Network,
stack
LMS
Foreground
Figure 10-3. LMS processing mechanics
The FG process uses OS calls to send messages. These system calls in turn recursively call network layer kernel
functions to send the message through the network hardware. These system calls are executed, accounting time to
the kernel mode CPU, and higher global cache traffic can induce higher CPU usage in kernel mode too.
An LMS process in instance 2 receives the message. If the LMS process has generated any type of redo, to
reconstruct the block either for CR or for current mode, LMS process will request LGWR process to do a log flush sync.
While LGWR is performing a log flush, LMS process will account wait time to the gcs log flush sync event. After
writing the log buffer to redo log files, LGWR wakes up LMS process, and LMS sends the block to the FG process in
instance 2. The packet is delivered to the FG process through the interconnect.
The FG process reads the packets from network buffers, copies the block to buffer cache, and continues
processing.
A block transfer involves numerous atomic steps. Time waited on each of these atomic steps is instrumented as a
statistic. Latency to receive a block in CR mode in an instance can be written using the following formula.
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.
The AWR report also captures these performance metrics and prints the average time taken for these atomic
steps involved in a block transfer. The following section from AWR report shows an example. First, receive metrics
are printed with an average of 1.9 ms and 1.8 ms for a block transfer in CR and current mode. The next few lines
 
Search WWH ::




Custom Search