SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
©OraInternals Riyaj Shamsudeen 
RAC Hack: 
Deep review of LMS/LGWR process 
By 
Riyaj Shamsudeen
LMS Processing (over simplified) 
Rx Msg 
CR / CUR 
block build 
Msg to LGWR 
(if needed) 
Wakeup 
Log buffer 
processing 
Log file write 
Signal 
LMS 
Wake up 
Send Block 
OS,Network 
stack 
©OraInternals Riyaj Shamsudeen 2 
Send GC 
Message 
OS,Network 
stack 
User session 
processing 
Copy to SGA 
OS,Network 
stack 
User LMSx LGWR 
Node 1 Node 2
Processing in the 
remote nodes 
©OraInternals Riyaj Shamsudeen 3 
GC CR latency 
 GC CR latency ~= 
Time spent in sending message to LMS + 
LMS processing (building blocks etc) + 
LGWR latency ( if any) + 
LMS send time + 
Wire latency 
Averages can be misleading. Always review both total time 
and average to understand the issue.
LMS process – A deep dive 
 LMS process uses pollsys system call and listens for incoming 
packets, with a 10ms timeout. 
 Sockets are file descriptors in UNIX. 
truss -d -E -v all -p 1485 |more 
1.8531 0.0000 pollsys(0xFFFFFD7FFFDFBA70, 7, 0xFFFFFD7FFFDFBA20, 0x00000000) = 0 
fd=36 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 
fd=29 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 
fd=33 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 
fd=41 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 
fd=42 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 
fd=39 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 
fd=40 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 
timeout: 0.010000000 sec 
Timeout 10ms 
1.8635 0.0000 pollsys(0xFFFFFD7FFFDFBA70, 7, 0xFFFFFD7FFFDFBA20, 0x00000000) = 0 
©OraInternals Riyaj Shamsudeen 4
©OraInternals Riyaj Shamsudeen 5 
LMS sockets 
 Pfiles shows that these file descriptors are sockets, essentially, 
LMS process is sending and receiving messages in the ports. 
Pfiles 1845 
36: S_IFSOCK mode:0666 dev:298,0 ino:10517 uid:0 gid:0 size:0 
O_RDWR|O_NONBLOCK FD_CLOEXEC 
SOCK_DGRAM 
SO_SNDBUF(57344),SO_RCVBUF(57344),IP_NEXTHOP(0.224.0.0) 
sockname: AF_INET 127.0.0.1 port: 33320 
29: S_IFSOCK mode:0666 dev:298,0 ino:41400 uid:0 gid:0 size:0 
O_RDWR|O_NONBLOCK FD_CLOEXEC 
SOCK_DGRAM 
SO_SNDBUF(262144),SO_RCVBUF(131072),IP_NEXTHOP(0.0.2.0) 
sockname: AF_INET 169.254.106.96 port: 33318 
33: S_IFSOCK mode:0666 dev:298,0 ino:10518 uid:0 gid:0 size:0 
O_RDWR|O_NONBLOCK FD_CLOEXEC 
SOCK_DGRAM 
SO_SNDBUF(262144),SO_RCVBUF(131072),IP_NEXTHOP(0.0.2.0) 
sockname: AF_INET 169.254.201.54 port: 33319 
Demo: demo_lms_truss.ksh demo_lms_pfiles.ksh
Pollsys call voluntarily releases CPU until a new packet is 
arrived to a port or a timeout. 
Uses very little of CPU if there is no work to be done. 
Without any work, just 92 Micro seconds of CPU used in 
a 10,242 micro seconds window. 
©OraInternals Riyaj Shamsudeen 6 
LMS CPU usage 
 Just because LMS process runs in RT mode, does not mean that 
LMS process is consuming all that CPU. 
#./trace_syscall_preempt_size.sh 1485 
0 => pollsys timestamp : 45075622139230 
0 | swtch:pswitch oracle sysinfo: timestamp : 45075622155047 
0 | swtch:pswitch Vol context switch : 45075622155697 pswitch genunix`cv_timedwait_sig_hires+0x2ab 
0 | resume:off-cpu On cpu 0 for: 92460 
0 | resume:on-cpu Off cpu for: 10242512 
0 <= pollsys timestamp : 45075632406018 elapsed : 10266788 
Demo: as root trace_syscall_preempt_size.sh
LMS process was woken up in 29 Micro seconds. 
©OraInternals Riyaj Shamsudeen 7 
LMS – early wakeup 
 Kernel will schedule LMS process if there is a network packet 
arriving to that port. 
#./trace_syscall_preempt_size.sh 1485 
0 => pollsys timestamp : 45075592390763 
0 | swtch:pswitch oracle sysinfo: timestamp : 45075592402281 
0 | swtch:pswitch Vol context switch : 45075592402933 pswitch genunix`cv_timedwait_sig_hires+0x2ab 
0 | resume:off-cpu On cpu 0 for: 55099 
0 | resume:on-cpu Off cpu for: 29660449 
0 <= pollsys timestamp : 45075622072662 elapsed : 29681899 
Demo: as root trace_syscall_preempt_size.sh
©OraInternals Riyaj Shamsudeen 8 
LMS count 
 Even in busy environments, I have seen LMS to be busy only 
50% of the time. 
 To schedule a process, CPU scheduler loads the CPU registers, 
instruction pipeline etc, a costly process. 
 If you have many LMS processes, then the workload will be 
distributed among them. Due to RT priority, they will be moving 
in and out of CPU. 
 In a multi-processor environment, this becomes more 
complicated. 
 Version 11.2 uses much more meaningful values for LMS count.
 It breaks down the process in to micro accounting percentages. 
In this case, 
Breakdown of LMS CPU usage is: 
©OraInternals Riyaj Shamsudeen 9 
LMS – prstat 
 In Solaris, another way to check the efficiency of LMS process is 
through prstat micro accounting. 
# prstat -mL -p 18243 
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWPID 
18243 prod 6.4 5.9 0.0 0.0 0.0 0.0 88 0.0 2K 0 30K 187 oracle/1 
6.4% USR mode 
5.9% SYS mode 
0% CPU latency 
88% Sleep 
Demo: prstat command 
2K voluntary context switches 
0 involuntary context swiches
LMS process in Node 4 is busy serving CR blocks. Why? 
©OraInternals Riyaj Shamsudeen 10 
LMS – session 
 LMS session level statistics can be used to measure the workload 
distribution. Of course, this is from the start of instances. 
@lms_workload_perc 
INST_ID PGM NAME VAL PROC_TO_INST PROC_TO_TOT INST_TO_TOT 
---------- ------- ------------------------------ ---------- ------------ ----------- ----------- 
1 (LMS0) gc cr blocks served 62960382 15 3 25 
1 (LMS1) gc cr blocks served 58701920 13 3 25 
1 (LMS2) gc cr blocks served 57757849 13 3 25 
... 
2 (LMS5) gc cr blocks served 44476702 14 2 18 
2 (LMS6) gc cr blocks served 42312824 13 2 18 
... 
3 (LMS0) gc cr blocks served 38465965 14 2 15 
3 (LMS1) gc cr blocks served 37541589 14 2 15 
... 
4 (LMS6) gc cr blocks served 95517242 14 5 40 
4 (LMS5) gc cr blocks served 94879180 13 5 40 
... 
Demo: lms_workload_distr.sql – to measure workload from the instance start
LMS processes in Node 4 is busy here. 
©OraInternals Riyaj Shamsudeen 11 
LMS - workload 
 In few cases, it is prudent to measure the current rate, instead of 
relying upon prior rate. 
@gc_lms_workload_distr_diff.sql 
Enter value for search_string: gc cr blocks served 
Enter value for sleep: 60 
---------|--------------|----------------|----------|---------------|---------------|-------------| 
Inst | Pgm | value | totvalue | instvalue | proc2inst |inst2total | 
---------|--------------|----------------|----------|---------------|---------------|-------------| 
1 | (LMS0)| 348| 16931| 2993| 11| 2| 
1 | (LMS1)| 335| 16931| 2993| 11| 1| 
... 
2 | (LMS0)| 359| 16931| 2660| 13| 2| 
2 | (LMS1)| 375| 16931| 2660| 14| 2| 
... 
3 | (LMS0)| 132| 16931| 1231| 10| 0| 
3 | (LMS1)| 194| 16931| 1231| 15| 1| 
... 
4 | (LMS0)| 1164| 16931| 10047| 11| 6| 
4 | (LMS1)| 1784| 16931| 10047| 17| 10| 
---------|--------------|----------------|----------|---------------|---------------|-------------| 
Demo: gc_lms_workload_distr_diff.sql
 Following session level stats can be reviewed to determine the 
performance counter for undo blocks applied. 
@get_sesstat_sid 
Enter the wildcard character (Null=All):undo 
Enter value threshold :1 
Enter sid :11000 
NAME VALUE 
---------------------------------------------------------------- ---------- 
transaction tables consistent reads - undo records applied 13180 
data blocks consistent reads - undo records applied 474036 
474K undo records were applied to create CR blocks. 
©OraInternals Riyaj Shamsudeen 12 
LMS – applying undo 
 LMS process applies undo blocks to construct the CR buffer to 
send. 
Demo: get_sesstat_sid.sql
-- Session Snapper v2.01 by Tanel Poder ( http://www.tanelpoder.com ) 
---------------------------------------------------------------------------------------------------------------------- 
SID, USERNAME , TYPE, STATISTIC , DELTA, HDELTA/SEC, %TIME, GRAPH 
---------------------------------------------------------------------------------------------------------------------- 
11000, (LMS0) , STAT, cleanouts and rollbacks - consistent rea, 633, 42.2, 
11000, (LMS0) , STAT, immediate (CR) block cleanout applicatio, 689, 45.93, 
11000, (LMS0) , STAT, commit txn count during cleanout , 56, 3.73, 
11000, (LMS0) , STAT, active txn count during cleanout , 633, 42.2, 
11000, (LMS0) , STAT, cleanout - number of ktugct calls , 690, 46, 
11000, (LMS0) , TIME, background cpu time , 696907, 46.46ms, 4.6%, |@ | 
11000, (LMS0) , TIME, background elapsed time , 696907, 46.46ms, 4.6%, |@ | 
11000, (LMS0) , WAIT, gcs remote message , 13987778, 932.52ms, 93.3%, |@@@@@@@@@@| 
11000, (LMS0) , WAIT, events in waitclass Other , 150638, 10.04ms, 1.0%, |@ | 
-- End of snap 2, end=2011-06-28 22:28:01, seconds=15 
©OraInternals Riyaj Shamsudeen 13 
LMS – snapper.sql 
 Tanel’s ultra-cool snapper is useful to find the rate of few 
statistics on LMS session. 
@session_snapper out,gather=stw 15 4 11000 
Demo: snapper.sql
@gc_traffic_print.sql 
---------|--------------|---------|----------------|---------|---------------|---------|-------------|---------| 
Inst | CR blocks Rx | CR Rx% | CUR blocks Rx | CUR RX %| CR blocks Tx | CR TX % | CUR blks TX | CUR TX% | 
---------|--------------|---------|----------------|---------|---------------|---------|-------------|---------| 
1 | 283| 3.6| 950| 27.12| 214| 3.33| 665| 16.8| 
2 | 7185| 91.47| 1327| 37.89| 256| 3.98| 1117| 28.22| 
3 | 119| 1.51| 886| 25.29| 5798| 90.22| 1617| 40.86| 
4 | 268| 3.41| 339| 9.68| 158| 2.45| 558| 14.1| 
In that sampling interval, node 3 was transmitting 90% of the CR blocks and 
node 2 was receiving those blocks. This insight is useful to measure the 
workload distribution, with a larger sampling interval. 
©OraInternals Riyaj Shamsudeen 14 
GC TX/RX % 
 You can find the percentage for TX and RX packets using the 
gc_trafic_print.sql script too. These percentages are at instance 
level. 
Demo: gc_traffic_print.sql
©OraInternals Riyaj Shamsudeen 15 
gcs log flush sync 
 Before sending a reconstructed CR block or CUR block, LMS 
will verify that corresponding redo vectors are flushed to disk. 
 If the redo vector are not flushed, LMS need to wait for ‘gcs log 
flush sync’ event after requesting LGWR for a log flush, 
analogous to ‘log file sync’ event. 
 This is not an idle event, even though some old documentation 
suggest that.
Gcs log flush sync - ASH 
 ASH shows that LMS waits for ‘gcs log flush sync’ event. 
select event, count(*) from v$active_session_history 
where session_id in (select sid from v$session where program like '%LMS0%') 
and sample_time > sysdate -(4/24) 
group by event 
order by 2 desc; 
EVENT COUNT(*) 
---------------------------------------- ---------- 
767 
gcs log flush sync 265 
latch: KCL gc element parent latch 4 
 In this database, there is no issue and so, waits for ‘gcs log flush 
sync’ is not high. 
©OraInternals Riyaj Shamsudeen 16
Gcs log flush sync – v$session_event 
 But, v$session_event for the LMS process shows that there are 
no waits for gcs log flush sync! 
select event, trunc(time_waited_micro/1000) wait_milli, total_waits 
from v$session_event where sid in (select sid from v$session where program like '%LMS0%') 
order by 2 desc; 
EVENT WAIT_MILLI TOTAL_WAITS 
---------------------------------------- ---------- ----------- 
gcs remote message 218407919 83934373 
events in waitclass Other 3970180 5237156 
buffer busy waits 356 2897 
latch: cache buffers chains 316 5197 
latch: row cache objects 0 2 
latch: shared pool 0 3 
Event ‘gcs log flush sync’ is combined with other events in the wait_class 
“other”. 
©OraInternals Riyaj Shamsudeen 17
Gcs log file sync - histogram 
 To review the impact of ‘gcs log file sync’ waits, you should 
review v$event_histogram. 
 73% of the waits complete under 1ms. This is probably not an 
issue. 
©OraInternals Riyaj Shamsudeen 18 
@event_histogram.sql 
Enter value for event_name: gcs log flush sync 
INST_ID EVENT WAIT_TIME_MILLI WAIT_COUNT PER 
---------- ---------------------------------------------------------------- --------------- ---------- ---------- 
1 gcs log flush sync 1 24490064 73.42 
1 gcs log flush sync 2 6250630 18.74 
1 gcs log flush sync 4 1848333 5.54 
1 gcs log flush sync 8 597646 1.79 
1 gcs log flush sync 16 142603 .42 
1 gcs log flush sync 32 25006 .07 
1 gcs log flush sync 64 66 0
Gcs log file sync – Not so good 
 Following histogram shows an example when there is a 
performance issue with LFS. 
 If you have LFS waits and GC waits, then you should consider 
tuning log file sync before tuning GC events. 
©OraInternals Riyaj Shamsudeen 19 
@event_histogram.sql 
Enter value for event_name: gcs log flush sync 
INST_ID EVENT WAIT_TIME_MILLI WAIT_COUNT PER 
---------- ---------------------------------------------------------------- --------------- ---------- ---------- 
1 gcs log flush sync 1 28 .07 
1 gcs log flush sync 2 24 .06 
1 gcs log flush sync 4 31 .08 
1 gcs log flush sync 8 33 .08 
1 gcs log flush sync 16 35757 95.96 
1 gcs log flush sync 32 1378 3.69 
1 gcs log flush sync 64 6 .01 
1 gcs log flush sync 128 2 0
Gcs log file sync – LGWR interaction 
 If LGWR is suffering from performance issues, then LMS 
process can be seen waiting on ‘gcs log flush’ wait event in a tight 
10ms loop. 
LMS trace file: 
... 
WAIT #0: nam='gcs log flush sync' ela= 10281 waittime=3 poll=0 event=136 obj#=-1 tim=1381909996 
WAIT #0: nam='gcs log flush sync' ela= 10274 waittime=3 poll=0 event=136 obj#=-1 tim=1381920366 
WAIT #0: nam='gcs log flush sync' ela= 10291 waittime=3 poll=0 event=136 obj#=-1 tim=1381930735 
WAIT #0: nam='gcs log flush sync' ela= 10321 waittime=3 poll=0 event=136 obj#=-1 tim=1381941178 
... 
 If you have LFS waits and GC waits, then you should consider 
tuning log file sync before tuning GC events. 
©OraInternals Riyaj Shamsudeen 20
GCS log flush sync - Example 
Excessive waits for log file sync for the 
foreground processes. 
©OraInternals Riyaj Shamsudeen 21 
Top 5 Timed Foreground Events 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Avg 
wait % DB 
Event Waits Time(s) (ms) time Wait Class 
------------------------------ ------------ ----------- ------ ------ ---------- 
log file sync 2,054 23,720 11548 45.8 Commit 
gc buffer busy acquire 19,505 10,382 532 20.0 Cluster 
gc cr block busy 5,407 4,655 861 9.0 Cluster 
enq: SQ - contention 140 3,432 24514 6.6 Configurat 
db file sequential read 38,062 1,305 34 2.5 User I/O 
Host CPU (CPUs: 24 Cores: 24 Sockets: 24) 
~~~~~~~~ Load Average 
Begin End %User %System %WIO %Idle 
--------- --------- --------- --------- --------- --------- 
1.18 1.16 2.7 2.6 0.0 94.7
GCS log flush sync – GC waits 
Average waits for CR RX was at 222ms 
Global Cache and Enqueue Services - Workload Characteristics 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Avg global enqueue get time (ms): 7.4 
Avg global cache cr block receive time (ms): 222.0 
Avg global cache current block receive time (ms): 27.5 
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 
Avg global cache current block pin time (ms): 0.0 
Avg global cache current block send time (ms): 0.1 
Global cache log flushes for current blocks served %: 0.3 
Avg global cache current block flush time (ms): 1701.3 
High flush time indicating 
waits for LGWR process 
©OraInternals Riyaj Shamsudeen 22
GCS log flush sync – GC waits 
Background processes waiting for excessive gcs log flush 
sync events. 
Avg 
%Time Total Wait wait Waits % bg 
Event Waits -outs Time (s) (ms) /txn time 
-------------------------- ------------ ----- ---------- ------- -------- ------ 
gcs log flush sync 80,695 51 1,862 23 34.7 32.9 
log file parallel write 44,129 0 880 20 19.0 15.6 
Log archive I/O 1,607 0 876 545 0.7 15.5 
gc cr block busy 729 71 752 1031 0.3 13.3 
db file parallel write 25,752 0 434 17 11.1 7.7 
enq: CF - contention 166 64 307 1850 0.1 5.4 
High waits for log file parallel writes 
©OraInternals Riyaj Shamsudeen 23
©OraInternals Riyaj Shamsudeen 24 
LGWR is important 
 So, if you think, LGWR performance is important in single 
instance, then it is ultra-important in RAC. 
 If you have LGWR related performance issues, you can almost 
discard other waits as symptoms. 
 It’s a pity that LGWR does not run in RT mode ( or even FX 
class). 
 LMS processes runs in elevated priority, but LGWR does not run 
in elevated priority, classic priority-inversion!
Thank you for attending! 
Contact info: 
Email: rshamsud@gmail.com 
Blog : orainternals.wordpress.com 
URL : www.orainternals.com 
©OraInternals Riyaj Shamsudeen 25

Más contenido relacionado

La actualidad más candente

Understanding oracle rac internals part 1 - slides
Understanding oracle rac internals   part 1 - slidesUnderstanding oracle rac internals   part 1 - slides
Understanding oracle rac internals part 1 - slidesMohamed Farouk
 
Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]
Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]
Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]Markus Michalewicz
 
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 Database performance tuning using oratop
Oracle Database performance tuning using oratopOracle Database performance tuning using oratop
Oracle Database performance tuning using oratopSandesh Rao
 
Oracle RAC 19c and Later - Best Practices #OOWLON
Oracle RAC 19c and Later - Best Practices #OOWLONOracle RAC 19c and Later - Best Practices #OOWLON
Oracle RAC 19c and Later - Best Practices #OOWLONMarkus Michalewicz
 
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And WhatPerformance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And Whatudaymoogala
 
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Markus Michalewicz
 
UKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksUKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksKyle Hailey
 
Smart monitoring how does oracle rac manage resource, state ukoug19
Smart monitoring how does oracle rac manage resource, state ukoug19Smart monitoring how does oracle rac manage resource, state ukoug19
Smart monitoring how does oracle rac manage resource, state ukoug19Anil Nair
 
Troubleshooting tips and tricks for Oracle Database Oct 2020
Troubleshooting tips and tricks for Oracle Database Oct 2020Troubleshooting tips and tricks for Oracle Database Oct 2020
Troubleshooting tips and tricks for Oracle Database Oct 2020Sandesh Rao
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Aaron Shilo
 
SQL Plan Directives explained
SQL Plan Directives explainedSQL Plan Directives explained
SQL Plan Directives explainedMauro Pagano
 
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Glen Hawkins
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Ludovico Caldara
 
High Availability for Oracle SE2
High Availability for Oracle SE2High Availability for Oracle SE2
High Availability for Oracle SE2Markus Flechtner
 
Dataguard presentation
Dataguard presentationDataguard presentation
Dataguard presentationVimlendu Kumar
 
Advanced RAC troubleshooting: Network
Advanced RAC troubleshooting: NetworkAdvanced RAC troubleshooting: Network
Advanced RAC troubleshooting: NetworkRiyaj Shamsudeen
 
Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014John Beresniewicz
 

La actualidad más candente (20)

Understanding oracle rac internals part 1 - slides
Understanding oracle rac internals   part 1 - slidesUnderstanding oracle rac internals   part 1 - slides
Understanding oracle rac internals part 1 - slides
 
Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]
Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]
Oracle RAC 12c Practical Performance Management and Tuning OOW13 [CON8825]
 
Oracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention TroubleshootingOracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention Troubleshooting
 
Oracle Database performance tuning using oratop
Oracle Database performance tuning using oratopOracle Database performance tuning using oratop
Oracle Database performance tuning using oratop
 
Oracle RAC 19c and Later - Best Practices #OOWLON
Oracle RAC 19c and Later - Best Practices #OOWLONOracle RAC 19c and Later - Best Practices #OOWLON
Oracle RAC 19c and Later - Best Practices #OOWLON
 
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And WhatPerformance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
 
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
 
UKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction LocksUKOUG, Oracle Transaction Locks
UKOUG, Oracle Transaction Locks
 
Smart monitoring how does oracle rac manage resource, state ukoug19
Smart monitoring how does oracle rac manage resource, state ukoug19Smart monitoring how does oracle rac manage resource, state ukoug19
Smart monitoring how does oracle rac manage resource, state ukoug19
 
Troubleshooting tips and tricks for Oracle Database Oct 2020
Troubleshooting tips and tricks for Oracle Database Oct 2020Troubleshooting tips and tricks for Oracle Database Oct 2020
Troubleshooting tips and tricks for Oracle Database Oct 2020
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
 
Ash and awr deep dive hotsos
Ash and awr deep dive hotsosAsh and awr deep dive hotsos
Ash and awr deep dive hotsos
 
SQL Plan Directives explained
SQL Plan Directives explainedSQL Plan Directives explained
SQL Plan Directives explained
 
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?
 
High Availability for Oracle SE2
High Availability for Oracle SE2High Availability for Oracle SE2
High Availability for Oracle SE2
 
AWR and ASH Deep Dive
AWR and ASH Deep DiveAWR and ASH Deep Dive
AWR and ASH Deep Dive
 
Dataguard presentation
Dataguard presentationDataguard presentation
Dataguard presentation
 
Advanced RAC troubleshooting: Network
Advanced RAC troubleshooting: NetworkAdvanced RAC troubleshooting: Network
Advanced RAC troubleshooting: Network
 
Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014Ash architecture and advanced usage rmoug2014
Ash architecture and advanced usage rmoug2014
 

Similar a Deep review of LMS process

A close encounter_with_real_world_and_odd_perf_issues
A close encounter_with_real_world_and_odd_perf_issuesA close encounter_with_real_world_and_odd_perf_issues
A close encounter_with_real_world_and_odd_perf_issuesRiyaj Shamsudeen
 
Debugging Ruby
Debugging RubyDebugging Ruby
Debugging RubyAman Gupta
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and ArchitectureSidney Chen
 
OSDC 2017 - Werner Fischer - Linux performance profiling and monitoring
OSDC 2017 - Werner Fischer - Linux performance profiling and monitoringOSDC 2017 - Werner Fischer - Linux performance profiling and monitoring
OSDC 2017 - Werner Fischer - Linux performance profiling and monitoringNETWAYS
 
OpenZFS data-driven performance
OpenZFS data-driven performanceOpenZFS data-driven performance
OpenZFS data-driven performanceahl0003
 
ThruPut Manager AE+: Automation for Production Control and Capacity Management
ThruPut Manager AE+: Automation for Production Control and Capacity ManagementThruPut Manager AE+: Automation for Production Control and Capacity Management
ThruPut Manager AE+: Automation for Production Control and Capacity ManagementCA Technologies
 
Percona Live UK 2014 Part III
Percona Live UK 2014  Part IIIPercona Live UK 2014  Part III
Percona Live UK 2014 Part IIIAlkin Tezuysal
 
Signalling in EPC/LTE
Signalling in EPC/LTESignalling in EPC/LTE
Signalling in EPC/LTELeliwa
 
12c for Developers - Feb 2014
12c for Developers - Feb 201412c for Developers - Feb 2014
12c for Developers - Feb 2014Connor McDonald
 
OSMC 2015: Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015: Linux Performance Profiling and Monitoring by Werner FischerOSMC 2015: Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015: Linux Performance Profiling and Monitoring by Werner FischerNETWAYS
 
OSMC 2015 | Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015 | Linux Performance Profiling and Monitoring by Werner FischerOSMC 2015 | Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015 | Linux Performance Profiling and Monitoring by Werner FischerNETWAYS
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby SystemsEngine Yard
 
Performance tweaks and tools for Linux (Joe Damato)
Performance tweaks and tools for Linux (Joe Damato)Performance tweaks and tools for Linux (Joe Damato)
Performance tweaks and tools for Linux (Joe Damato)Ontico
 
re:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at Netflixre:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at NetflixBrendan Gregg
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016Brendan Gregg
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center supportKrunal Shah
 

Similar a Deep review of LMS process (20)

A close encounter_with_real_world_and_odd_perf_issues
A close encounter_with_real_world_and_odd_perf_issuesA close encounter_with_real_world_and_odd_perf_issues
A close encounter_with_real_world_and_odd_perf_issues
 
Debugging Ruby
Debugging RubyDebugging Ruby
Debugging Ruby
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
 
OSDC 2017 - Werner Fischer - Linux performance profiling and monitoring
OSDC 2017 - Werner Fischer - Linux performance profiling and monitoringOSDC 2017 - Werner Fischer - Linux performance profiling and monitoring
OSDC 2017 - Werner Fischer - Linux performance profiling and monitoring
 
PoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expériencePoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expérience
 
OpenZFS data-driven performance
OpenZFS data-driven performanceOpenZFS data-driven performance
OpenZFS data-driven performance
 
ThruPut Manager AE+: Automation for Production Control and Capacity Management
ThruPut Manager AE+: Automation for Production Control and Capacity ManagementThruPut Manager AE+: Automation for Production Control and Capacity Management
ThruPut Manager AE+: Automation for Production Control and Capacity Management
 
Percona Live UK 2014 Part III
Percona Live UK 2014  Part IIIPercona Live UK 2014  Part III
Percona Live UK 2014 Part III
 
Signalling in EPC/LTE
Signalling in EPC/LTESignalling in EPC/LTE
Signalling in EPC/LTE
 
Px execution in rac
Px execution in racPx execution in rac
Px execution in rac
 
12c for Developers - Feb 2014
12c for Developers - Feb 201412c for Developers - Feb 2014
12c for Developers - Feb 2014
 
OSMC 2015: Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015: Linux Performance Profiling and Monitoring by Werner FischerOSMC 2015: Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015: Linux Performance Profiling and Monitoring by Werner Fischer
 
OSMC 2015 | Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015 | Linux Performance Profiling and Monitoring by Werner FischerOSMC 2015 | Linux Performance Profiling and Monitoring by Werner Fischer
OSMC 2015 | Linux Performance Profiling and Monitoring by Werner Fischer
 
Debugging Ruby Systems
Debugging Ruby SystemsDebugging Ruby Systems
Debugging Ruby Systems
 
Performance tweaks and tools for Linux (Joe Damato)
Performance tweaks and tools for Linux (Joe Damato)Performance tweaks and tools for Linux (Joe Damato)
Performance tweaks and tools for Linux (Joe Damato)
 
re:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at Netflixre:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at Netflix
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center support
 
Mysql tracing
Mysql tracingMysql tracing
Mysql tracing
 
Mysql tracing
Mysql tracingMysql tracing
Mysql tracing
 

Más de Riyaj Shamsudeen

Riyaj: why optimizer_hates_my_sql_2010
Riyaj: why optimizer_hates_my_sql_2010Riyaj: why optimizer_hates_my_sql_2010
Riyaj: why optimizer_hates_my_sql_2010Riyaj Shamsudeen
 
Riyaj real world performance issues rac focus
Riyaj real world performance issues rac focusRiyaj real world performance issues rac focus
Riyaj real world performance issues rac focusRiyaj Shamsudeen
 
Debunking myths about_redo_ppt
Debunking myths about_redo_pptDebunking myths about_redo_ppt
Debunking myths about_redo_pptRiyaj Shamsudeen
 
Demystifying cost based optimization
Demystifying cost based optimizationDemystifying cost based optimization
Demystifying cost based optimizationRiyaj Shamsudeen
 
Advanced rac troubleshooting
Advanced rac troubleshootingAdvanced rac troubleshooting
Advanced rac troubleshootingRiyaj Shamsudeen
 
A kind and gentle introducton to rac
A kind and gentle introducton to racA kind and gentle introducton to rac
A kind and gentle introducton to racRiyaj Shamsudeen
 
Performance tuning a quick intoduction
Performance tuning   a quick intoductionPerformance tuning   a quick intoduction
Performance tuning a quick intoductionRiyaj Shamsudeen
 
Dbms plan - A swiss army knife for performance engineers
Dbms plan - A swiss army knife for performance engineersDbms plan - A swiss army knife for performance engineers
Dbms plan - A swiss army knife for performance engineersRiyaj Shamsudeen
 

Más de Riyaj Shamsudeen (11)

Rac introduction
Rac introductionRac introduction
Rac introduction
 
Riyaj: why optimizer_hates_my_sql_2010
Riyaj: why optimizer_hates_my_sql_2010Riyaj: why optimizer_hates_my_sql_2010
Riyaj: why optimizer_hates_my_sql_2010
 
Riyaj real world performance issues rac focus
Riyaj real world performance issues rac focusRiyaj real world performance issues rac focus
Riyaj real world performance issues rac focus
 
Redo internals ppt
Redo internals pptRedo internals ppt
Redo internals ppt
 
Debunking myths about_redo_ppt
Debunking myths about_redo_pptDebunking myths about_redo_ppt
Debunking myths about_redo_ppt
 
Demystifying cost based optimization
Demystifying cost based optimizationDemystifying cost based optimization
Demystifying cost based optimization
 
Advanced rac troubleshooting
Advanced rac troubleshootingAdvanced rac troubleshooting
Advanced rac troubleshooting
 
A kind and gentle introducton to rac
A kind and gentle introducton to racA kind and gentle introducton to rac
A kind and gentle introducton to rac
 
Performance tuning a quick intoduction
Performance tuning   a quick intoductionPerformance tuning   a quick intoduction
Performance tuning a quick intoduction
 
Rac 12c optimization
Rac 12c optimizationRac 12c optimization
Rac 12c optimization
 
Dbms plan - A swiss army knife for performance engineers
Dbms plan - A swiss army knife for performance engineersDbms plan - A swiss army knife for performance engineers
Dbms plan - A swiss army knife for performance engineers
 

Último

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Deep review of LMS process

  • 1. ©OraInternals Riyaj Shamsudeen RAC Hack: Deep review of LMS/LGWR process By Riyaj Shamsudeen
  • 2. LMS Processing (over simplified) Rx Msg CR / CUR block build Msg to LGWR (if needed) Wakeup Log buffer processing Log file write Signal LMS Wake up Send Block OS,Network stack ©OraInternals Riyaj Shamsudeen 2 Send GC Message OS,Network stack User session processing Copy to SGA OS,Network stack User LMSx LGWR Node 1 Node 2
  • 3. Processing in the remote nodes ©OraInternals Riyaj Shamsudeen 3 GC CR latency  GC CR latency ~= Time spent in sending message to LMS + LMS processing (building blocks etc) + LGWR latency ( if any) + LMS send time + Wire latency Averages can be misleading. Always review both total time and average to understand the issue.
  • 4. LMS process – A deep dive  LMS process uses pollsys system call and listens for incoming packets, with a 10ms timeout.  Sockets are file descriptors in UNIX. truss -d -E -v all -p 1485 |more 1.8531 0.0000 pollsys(0xFFFFFD7FFFDFBA70, 7, 0xFFFFFD7FFFDFBA20, 0x00000000) = 0 fd=36 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 fd=29 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 fd=33 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 fd=41 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 fd=42 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 fd=39 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 fd=40 ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=0 timeout: 0.010000000 sec Timeout 10ms 1.8635 0.0000 pollsys(0xFFFFFD7FFFDFBA70, 7, 0xFFFFFD7FFFDFBA20, 0x00000000) = 0 ©OraInternals Riyaj Shamsudeen 4
  • 5. ©OraInternals Riyaj Shamsudeen 5 LMS sockets  Pfiles shows that these file descriptors are sockets, essentially, LMS process is sending and receiving messages in the ports. Pfiles 1845 36: S_IFSOCK mode:0666 dev:298,0 ino:10517 uid:0 gid:0 size:0 O_RDWR|O_NONBLOCK FD_CLOEXEC SOCK_DGRAM SO_SNDBUF(57344),SO_RCVBUF(57344),IP_NEXTHOP(0.224.0.0) sockname: AF_INET 127.0.0.1 port: 33320 29: S_IFSOCK mode:0666 dev:298,0 ino:41400 uid:0 gid:0 size:0 O_RDWR|O_NONBLOCK FD_CLOEXEC SOCK_DGRAM SO_SNDBUF(262144),SO_RCVBUF(131072),IP_NEXTHOP(0.0.2.0) sockname: AF_INET 169.254.106.96 port: 33318 33: S_IFSOCK mode:0666 dev:298,0 ino:10518 uid:0 gid:0 size:0 O_RDWR|O_NONBLOCK FD_CLOEXEC SOCK_DGRAM SO_SNDBUF(262144),SO_RCVBUF(131072),IP_NEXTHOP(0.0.2.0) sockname: AF_INET 169.254.201.54 port: 33319 Demo: demo_lms_truss.ksh demo_lms_pfiles.ksh
  • 6. Pollsys call voluntarily releases CPU until a new packet is arrived to a port or a timeout. Uses very little of CPU if there is no work to be done. Without any work, just 92 Micro seconds of CPU used in a 10,242 micro seconds window. ©OraInternals Riyaj Shamsudeen 6 LMS CPU usage  Just because LMS process runs in RT mode, does not mean that LMS process is consuming all that CPU. #./trace_syscall_preempt_size.sh 1485 0 => pollsys timestamp : 45075622139230 0 | swtch:pswitch oracle sysinfo: timestamp : 45075622155047 0 | swtch:pswitch Vol context switch : 45075622155697 pswitch genunix`cv_timedwait_sig_hires+0x2ab 0 | resume:off-cpu On cpu 0 for: 92460 0 | resume:on-cpu Off cpu for: 10242512 0 <= pollsys timestamp : 45075632406018 elapsed : 10266788 Demo: as root trace_syscall_preempt_size.sh
  • 7. LMS process was woken up in 29 Micro seconds. ©OraInternals Riyaj Shamsudeen 7 LMS – early wakeup  Kernel will schedule LMS process if there is a network packet arriving to that port. #./trace_syscall_preempt_size.sh 1485 0 => pollsys timestamp : 45075592390763 0 | swtch:pswitch oracle sysinfo: timestamp : 45075592402281 0 | swtch:pswitch Vol context switch : 45075592402933 pswitch genunix`cv_timedwait_sig_hires+0x2ab 0 | resume:off-cpu On cpu 0 for: 55099 0 | resume:on-cpu Off cpu for: 29660449 0 <= pollsys timestamp : 45075622072662 elapsed : 29681899 Demo: as root trace_syscall_preempt_size.sh
  • 8. ©OraInternals Riyaj Shamsudeen 8 LMS count  Even in busy environments, I have seen LMS to be busy only 50% of the time.  To schedule a process, CPU scheduler loads the CPU registers, instruction pipeline etc, a costly process.  If you have many LMS processes, then the workload will be distributed among them. Due to RT priority, they will be moving in and out of CPU.  In a multi-processor environment, this becomes more complicated.  Version 11.2 uses much more meaningful values for LMS count.
  • 9.  It breaks down the process in to micro accounting percentages. In this case, Breakdown of LMS CPU usage is: ©OraInternals Riyaj Shamsudeen 9 LMS – prstat  In Solaris, another way to check the efficiency of LMS process is through prstat micro accounting. # prstat -mL -p 18243 PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWPID 18243 prod 6.4 5.9 0.0 0.0 0.0 0.0 88 0.0 2K 0 30K 187 oracle/1 6.4% USR mode 5.9% SYS mode 0% CPU latency 88% Sleep Demo: prstat command 2K voluntary context switches 0 involuntary context swiches
  • 10. LMS process in Node 4 is busy serving CR blocks. Why? ©OraInternals Riyaj Shamsudeen 10 LMS – session  LMS session level statistics can be used to measure the workload distribution. Of course, this is from the start of instances. @lms_workload_perc INST_ID PGM NAME VAL PROC_TO_INST PROC_TO_TOT INST_TO_TOT ---------- ------- ------------------------------ ---------- ------------ ----------- ----------- 1 (LMS0) gc cr blocks served 62960382 15 3 25 1 (LMS1) gc cr blocks served 58701920 13 3 25 1 (LMS2) gc cr blocks served 57757849 13 3 25 ... 2 (LMS5) gc cr blocks served 44476702 14 2 18 2 (LMS6) gc cr blocks served 42312824 13 2 18 ... 3 (LMS0) gc cr blocks served 38465965 14 2 15 3 (LMS1) gc cr blocks served 37541589 14 2 15 ... 4 (LMS6) gc cr blocks served 95517242 14 5 40 4 (LMS5) gc cr blocks served 94879180 13 5 40 ... Demo: lms_workload_distr.sql – to measure workload from the instance start
  • 11. LMS processes in Node 4 is busy here. ©OraInternals Riyaj Shamsudeen 11 LMS - workload  In few cases, it is prudent to measure the current rate, instead of relying upon prior rate. @gc_lms_workload_distr_diff.sql Enter value for search_string: gc cr blocks served Enter value for sleep: 60 ---------|--------------|----------------|----------|---------------|---------------|-------------| Inst | Pgm | value | totvalue | instvalue | proc2inst |inst2total | ---------|--------------|----------------|----------|---------------|---------------|-------------| 1 | (LMS0)| 348| 16931| 2993| 11| 2| 1 | (LMS1)| 335| 16931| 2993| 11| 1| ... 2 | (LMS0)| 359| 16931| 2660| 13| 2| 2 | (LMS1)| 375| 16931| 2660| 14| 2| ... 3 | (LMS0)| 132| 16931| 1231| 10| 0| 3 | (LMS1)| 194| 16931| 1231| 15| 1| ... 4 | (LMS0)| 1164| 16931| 10047| 11| 6| 4 | (LMS1)| 1784| 16931| 10047| 17| 10| ---------|--------------|----------------|----------|---------------|---------------|-------------| Demo: gc_lms_workload_distr_diff.sql
  • 12.  Following session level stats can be reviewed to determine the performance counter for undo blocks applied. @get_sesstat_sid Enter the wildcard character (Null=All):undo Enter value threshold :1 Enter sid :11000 NAME VALUE ---------------------------------------------------------------- ---------- transaction tables consistent reads - undo records applied 13180 data blocks consistent reads - undo records applied 474036 474K undo records were applied to create CR blocks. ©OraInternals Riyaj Shamsudeen 12 LMS – applying undo  LMS process applies undo blocks to construct the CR buffer to send. Demo: get_sesstat_sid.sql
  • 13. -- Session Snapper v2.01 by Tanel Poder ( http://www.tanelpoder.com ) ---------------------------------------------------------------------------------------------------------------------- SID, USERNAME , TYPE, STATISTIC , DELTA, HDELTA/SEC, %TIME, GRAPH ---------------------------------------------------------------------------------------------------------------------- 11000, (LMS0) , STAT, cleanouts and rollbacks - consistent rea, 633, 42.2, 11000, (LMS0) , STAT, immediate (CR) block cleanout applicatio, 689, 45.93, 11000, (LMS0) , STAT, commit txn count during cleanout , 56, 3.73, 11000, (LMS0) , STAT, active txn count during cleanout , 633, 42.2, 11000, (LMS0) , STAT, cleanout - number of ktugct calls , 690, 46, 11000, (LMS0) , TIME, background cpu time , 696907, 46.46ms, 4.6%, |@ | 11000, (LMS0) , TIME, background elapsed time , 696907, 46.46ms, 4.6%, |@ | 11000, (LMS0) , WAIT, gcs remote message , 13987778, 932.52ms, 93.3%, |@@@@@@@@@@| 11000, (LMS0) , WAIT, events in waitclass Other , 150638, 10.04ms, 1.0%, |@ | -- End of snap 2, end=2011-06-28 22:28:01, seconds=15 ©OraInternals Riyaj Shamsudeen 13 LMS – snapper.sql  Tanel’s ultra-cool snapper is useful to find the rate of few statistics on LMS session. @session_snapper out,gather=stw 15 4 11000 Demo: snapper.sql
  • 14. @gc_traffic_print.sql ---------|--------------|---------|----------------|---------|---------------|---------|-------------|---------| Inst | CR blocks Rx | CR Rx% | CUR blocks Rx | CUR RX %| CR blocks Tx | CR TX % | CUR blks TX | CUR TX% | ---------|--------------|---------|----------------|---------|---------------|---------|-------------|---------| 1 | 283| 3.6| 950| 27.12| 214| 3.33| 665| 16.8| 2 | 7185| 91.47| 1327| 37.89| 256| 3.98| 1117| 28.22| 3 | 119| 1.51| 886| 25.29| 5798| 90.22| 1617| 40.86| 4 | 268| 3.41| 339| 9.68| 158| 2.45| 558| 14.1| In that sampling interval, node 3 was transmitting 90% of the CR blocks and node 2 was receiving those blocks. This insight is useful to measure the workload distribution, with a larger sampling interval. ©OraInternals Riyaj Shamsudeen 14 GC TX/RX %  You can find the percentage for TX and RX packets using the gc_trafic_print.sql script too. These percentages are at instance level. Demo: gc_traffic_print.sql
  • 15. ©OraInternals Riyaj Shamsudeen 15 gcs log flush sync  Before sending a reconstructed CR block or CUR block, LMS will verify that corresponding redo vectors are flushed to disk.  If the redo vector are not flushed, LMS need to wait for ‘gcs log flush sync’ event after requesting LGWR for a log flush, analogous to ‘log file sync’ event.  This is not an idle event, even though some old documentation suggest that.
  • 16. Gcs log flush sync - ASH  ASH shows that LMS waits for ‘gcs log flush sync’ event. select event, count(*) from v$active_session_history where session_id in (select sid from v$session where program like '%LMS0%') and sample_time > sysdate -(4/24) group by event order by 2 desc; EVENT COUNT(*) ---------------------------------------- ---------- 767 gcs log flush sync 265 latch: KCL gc element parent latch 4  In this database, there is no issue and so, waits for ‘gcs log flush sync’ is not high. ©OraInternals Riyaj Shamsudeen 16
  • 17. Gcs log flush sync – v$session_event  But, v$session_event for the LMS process shows that there are no waits for gcs log flush sync! select event, trunc(time_waited_micro/1000) wait_milli, total_waits from v$session_event where sid in (select sid from v$session where program like '%LMS0%') order by 2 desc; EVENT WAIT_MILLI TOTAL_WAITS ---------------------------------------- ---------- ----------- gcs remote message 218407919 83934373 events in waitclass Other 3970180 5237156 buffer busy waits 356 2897 latch: cache buffers chains 316 5197 latch: row cache objects 0 2 latch: shared pool 0 3 Event ‘gcs log flush sync’ is combined with other events in the wait_class “other”. ©OraInternals Riyaj Shamsudeen 17
  • 18. Gcs log file sync - histogram  To review the impact of ‘gcs log file sync’ waits, you should review v$event_histogram.  73% of the waits complete under 1ms. This is probably not an issue. ©OraInternals Riyaj Shamsudeen 18 @event_histogram.sql Enter value for event_name: gcs log flush sync INST_ID EVENT WAIT_TIME_MILLI WAIT_COUNT PER ---------- ---------------------------------------------------------------- --------------- ---------- ---------- 1 gcs log flush sync 1 24490064 73.42 1 gcs log flush sync 2 6250630 18.74 1 gcs log flush sync 4 1848333 5.54 1 gcs log flush sync 8 597646 1.79 1 gcs log flush sync 16 142603 .42 1 gcs log flush sync 32 25006 .07 1 gcs log flush sync 64 66 0
  • 19. Gcs log file sync – Not so good  Following histogram shows an example when there is a performance issue with LFS.  If you have LFS waits and GC waits, then you should consider tuning log file sync before tuning GC events. ©OraInternals Riyaj Shamsudeen 19 @event_histogram.sql Enter value for event_name: gcs log flush sync INST_ID EVENT WAIT_TIME_MILLI WAIT_COUNT PER ---------- ---------------------------------------------------------------- --------------- ---------- ---------- 1 gcs log flush sync 1 28 .07 1 gcs log flush sync 2 24 .06 1 gcs log flush sync 4 31 .08 1 gcs log flush sync 8 33 .08 1 gcs log flush sync 16 35757 95.96 1 gcs log flush sync 32 1378 3.69 1 gcs log flush sync 64 6 .01 1 gcs log flush sync 128 2 0
  • 20. Gcs log file sync – LGWR interaction  If LGWR is suffering from performance issues, then LMS process can be seen waiting on ‘gcs log flush’ wait event in a tight 10ms loop. LMS trace file: ... WAIT #0: nam='gcs log flush sync' ela= 10281 waittime=3 poll=0 event=136 obj#=-1 tim=1381909996 WAIT #0: nam='gcs log flush sync' ela= 10274 waittime=3 poll=0 event=136 obj#=-1 tim=1381920366 WAIT #0: nam='gcs log flush sync' ela= 10291 waittime=3 poll=0 event=136 obj#=-1 tim=1381930735 WAIT #0: nam='gcs log flush sync' ela= 10321 waittime=3 poll=0 event=136 obj#=-1 tim=1381941178 ...  If you have LFS waits and GC waits, then you should consider tuning log file sync before tuning GC events. ©OraInternals Riyaj Shamsudeen 20
  • 21. GCS log flush sync - Example Excessive waits for log file sync for the foreground processes. ©OraInternals Riyaj Shamsudeen 21 Top 5 Timed Foreground Events ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Avg wait % DB Event Waits Time(s) (ms) time Wait Class ------------------------------ ------------ ----------- ------ ------ ---------- log file sync 2,054 23,720 11548 45.8 Commit gc buffer busy acquire 19,505 10,382 532 20.0 Cluster gc cr block busy 5,407 4,655 861 9.0 Cluster enq: SQ - contention 140 3,432 24514 6.6 Configurat db file sequential read 38,062 1,305 34 2.5 User I/O Host CPU (CPUs: 24 Cores: 24 Sockets: 24) ~~~~~~~~ Load Average Begin End %User %System %WIO %Idle --------- --------- --------- --------- --------- --------- 1.18 1.16 2.7 2.6 0.0 94.7
  • 22. GCS log flush sync – GC waits Average waits for CR RX was at 222ms Global Cache and Enqueue Services - Workload Characteristics ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Avg global enqueue get time (ms): 7.4 Avg global cache cr block receive time (ms): 222.0 Avg global cache current block receive time (ms): 27.5 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 Avg global cache current block pin time (ms): 0.0 Avg global cache current block send time (ms): 0.1 Global cache log flushes for current blocks served %: 0.3 Avg global cache current block flush time (ms): 1701.3 High flush time indicating waits for LGWR process ©OraInternals Riyaj Shamsudeen 22
  • 23. GCS log flush sync – GC waits Background processes waiting for excessive gcs log flush sync events. Avg %Time Total Wait wait Waits % bg Event Waits -outs Time (s) (ms) /txn time -------------------------- ------------ ----- ---------- ------- -------- ------ gcs log flush sync 80,695 51 1,862 23 34.7 32.9 log file parallel write 44,129 0 880 20 19.0 15.6 Log archive I/O 1,607 0 876 545 0.7 15.5 gc cr block busy 729 71 752 1031 0.3 13.3 db file parallel write 25,752 0 434 17 11.1 7.7 enq: CF - contention 166 64 307 1850 0.1 5.4 High waits for log file parallel writes ©OraInternals Riyaj Shamsudeen 23
  • 24. ©OraInternals Riyaj Shamsudeen 24 LGWR is important  So, if you think, LGWR performance is important in single instance, then it is ultra-important in RAC.  If you have LGWR related performance issues, you can almost discard other waits as symptoms.  It’s a pity that LGWR does not run in RT mode ( or even FX class).  LMS processes runs in elevated priority, but LGWR does not run in elevated priority, classic priority-inversion!
  • 25. Thank you for attending! Contact info: Email: rshamsud@gmail.com Blog : orainternals.wordpress.com URL : www.orainternals.com ©OraInternals Riyaj Shamsudeen 25