SlideShare a Scribd company logo
Ā©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

More Related Content

What's hot

Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsOracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsZohar Elkayam
Ā 
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 statistics by example
Oracle statistics by exampleOracle statistics by example
Oracle statistics by exampleMauro Pagano
Ā 
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
Ā 
Tanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder
Ā 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh 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
Ā 
My SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please helpMy SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please helpMarkus Flechtner
Ā 
TFA Collector - what can one do with it
TFA Collector - what can one do with it TFA Collector - what can one do with it
TFA Collector - what can one do with it Sandesh Rao
Ā 
Oracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptOracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptChien Chung Shen
Ā 
Cluster Health Advisor (CHA) Deep Dive by Mark Scardina
Cluster Health Advisor (CHA)  Deep Dive by Mark ScardinaCluster Health Advisor (CHA)  Deep Dive by Mark Scardina
Cluster Health Advisor (CHA) Deep Dive by Mark ScardinaMarkus Michalewicz
Ā 
Oracle AWR Data mining
Oracle AWR Data miningOracle AWR Data mining
Oracle AWR Data miningYury Velikanov
Ā 
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...Sandesh Rao
Ā 
New Generation Oracle RAC Performance
New Generation Oracle RAC PerformanceNew Generation Oracle RAC Performance
New Generation Oracle RAC PerformanceAnil Nair
Ā 
Sga internals
Sga internalsSga internals
Sga internalssergkosko
Ā 
Low Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesLow Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesTanel Poder
Ā 
Oracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous DatabaseOracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous DatabaseMarkus Michalewicz
Ā 
Oracle Performance Tuning Fundamentals
Oracle Performance Tuning FundamentalsOracle Performance Tuning Fundamentals
Oracle Performance Tuning FundamentalsEnkitec
Ā 

What's hot (20)

Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsOracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Ā 
Oracle Database performance tuning using oratop
Oracle Database performance tuning using oratopOracle Database performance tuning using oratop
Oracle Database performance tuning using oratop
Ā 
Oracle statistics by example
Oracle statistics by exampleOracle statistics by example
Oracle statistics by example
Ā 
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
Ā 
Tanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata Migrations
Ā 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Ā 
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...
Ā 
My SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please helpMy SYSAUX tablespace is full - please help
My SYSAUX tablespace is full - please help
Ā 
TFA Collector - what can one do with it
TFA Collector - what can one do with it TFA Collector - what can one do with it
TFA Collector - what can one do with it
Ā 
Oracle ASM Training
Oracle ASM TrainingOracle ASM Training
Oracle ASM Training
Ā 
Oracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptOracle Database SQL Tuning Concept
Oracle Database SQL Tuning Concept
Ā 
Cluster Health Advisor (CHA) Deep Dive by Mark Scardina
Cluster Health Advisor (CHA)  Deep Dive by Mark ScardinaCluster Health Advisor (CHA)  Deep Dive by Mark Scardina
Cluster Health Advisor (CHA) Deep Dive by Mark Scardina
Ā 
Oracle AWR Data mining
Oracle AWR Data miningOracle AWR Data mining
Oracle AWR Data mining
Ā 
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
Ā 
New Generation Oracle RAC Performance
New Generation Oracle RAC PerformanceNew Generation Oracle RAC Performance
New Generation Oracle RAC Performance
Ā 
Sga internals
Sga internalsSga internals
Sga internals
Ā 
Low Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesLow Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling Examples
Ā 
Oracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous DatabaseOracle RAC 19c - the Basis for the Autonomous Database
Oracle RAC 19c - the Basis for the Autonomous Database
Ā 
Oracle Performance Tuning Fundamentals
Oracle Performance Tuning FundamentalsOracle Performance Tuning Fundamentals
Oracle Performance Tuning Fundamentals
Ā 

Similar to 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
Ā 
Mysql tracing
Mysql tracingMysql tracing
Mysql tracingAnis Berejeb
Ā 
Mysql tracing
Mysql tracingMysql tracing
Mysql tracingAnis Berejeb
Ā 

Similar to 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
Ā 

More from 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
Ā 
Rac 12c optimization
Rac 12c optimizationRac 12c optimization
Rac 12c optimizationRiyaj 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
Ā 

More from 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
Ā 

Recently uploaded

Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€
Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€
Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€DianaGray10
Ā 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
Ā 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
Ā 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
Ā 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
Ā 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...Sri Ambati
Ā 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
Ā 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
Ā 
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone KomSalesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone KomCzechDreamin
Ā 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
Ā 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
Ā 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
Ā 
10 Differences between Sales Cloud and CPQ, Blanka DoktorovĆ”
10 Differences between Sales Cloud and CPQ, Blanka DoktorovƔ10 Differences between Sales Cloud and CPQ, Blanka DoktorovƔ
10 Differences between Sales Cloud and CPQ, Blanka DoktorovƔCzechDreamin
Ā 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
Ā 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
Ā 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
Ā 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
Ā 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
Ā 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
Ā 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
Ā 

Recently uploaded (20)

Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€
Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€
Exploring UiPath Orchestrator API: updates and limits in 2024 šŸš€
Ā 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
Ā 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Ā 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
Ā 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Ā 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Ā 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Ā 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Ā 
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone KomSalesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption ā€“ Metrics, Methods, and Motivation, Antone Kom
Ā 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Ā 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Ā 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
Ā 
10 Differences between Sales Cloud and CPQ, Blanka DoktorovĆ”
10 Differences between Sales Cloud and CPQ, Blanka DoktorovƔ10 Differences between Sales Cloud and CPQ, Blanka DoktorovƔ
10 Differences between Sales Cloud and CPQ, Blanka DoktorovĆ”
Ā 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Ā 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
Ā 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Ā 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Ā 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Ā 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Ā 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
Ā 

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