近期遇到多个客户的LINUX环境数据库均在业务高峰时段出现严重的共享池相关等待,包括library cache lock /latch: shared pool等待事件,导致业务使用人员反馈慢,严重的会导致无法建立新的业务连接等。
这类问题的分析,除了数据库中根据ASH等待事件来分析是否有blocker、硬解析/软解析问题等,如果是不低于11G版本,还应关注数据库日志中是否有SWAP使用的信息如WARNING: Heavy swapping observed on system in last 5 mins; 如果安装有OSW一类监控,可以从TOP/VMSTAT等命令输出看是否有明显的swap in/out换页动作以及TOP输出中的kswapd0 进程;通常这类问题先要把LINUX系统层面的内存配置处理好,比如设置hugepage/thp来减少pagetable的空间占用,设置vm.swappiness = 10等来避免换页发生;在操作系统层面的设置完成后,数据库层面优化SQL的执行效率、相关参数优化也都可以进行。
从实践来看,通常需要先解决操作系统的配置后,如果仍有严重共享池问题,目光再转向SQL解析问题比较合适。
近期遇到类似LINUX上的三个ORACLE数据库系统异常情况,两次是反应慢,一次直接是严重的library cache lock,所有应用系统/PLSQL DEV工具均无法连接; 后续均通过OS级别的配置hugepage/thp,设置vm.swappiness = 10后,数据库层面未做设置。目前均运行稳定。
相关处理过程信息: 1.ASH中信息
06:52:00 (2.0 min) 3,318 latch: shared pool 1,393 4.56
06:52:00 (2.0 min) 3318 CPU + Wait for CPU 1,086 3.55
06:52:00 (2.0 min) 3318 null event 603 1.97
06:54:00 (2.0 min) 11,338 latch: shared pool 8,310 27.18
06:54:00 (2.0 min) 11338 null event 2,073 6.78
06:54:00 (2.0 min) 11338 CPU + Wait for CPU 578 1.89
06:56:00 (2.0 min) 8,086 latch: shared pool 5,615 18.37
06:56:00 (2.0 min) 8086 CPU + Wait for CPU 1,441 4.71
06:56:00 (2.0 min) 8086 null event 828 2.71
06:58:00 (2.0 min) 2,690 CPU + Wait for CPU 2,277 7.45
06:58:00 (2.0 min) 2690 db file sequential read 131 0.43
06:58:00 (2.0 min) 2690 db file parallel read 98 0.32
07:00:00 (2.0 min) 2,079 CPU + Wait for CPU 1,471 4.81
07:00:00 (2.0 min) 2079 latch: shared pool 166 0.54
07:00:00 (2.0 min) 2079 db file sequential read 127 0.42</span>
2.OSW收集的系统信息
zzz ***Fri Sep 28 06:50:23 CST 2018
Cpu(s): 1.4%us, 4.8%sy, 0.0%ni, 93.5%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 65838444k total, 56004596k used, 9833848k free, 22240k buffers
Swap: 32989180k total, 4589600k used, 28399580k free, 48619576k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
437 root 20 0 0 0 0 R 99.0 0.0 75:55.06 kswapd0
16204 oracle 20 0 24.2g 280m 277m R 18.3 0.4 0:00.19 oracle
zzz ***Fri Sep 28 06:50:23 CST 2018
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 4589744 905784 80736 57481824 3 2 344 11 0 0 2 1 96 1 0
1 0 4589644 5919328 75564 52517876 148 0 14864 220 6591 5498 1 5 93 0 0
2 0 4589592 12053740 20948 46429312 20 0 188 664 11428 5077 2 5 93 0 0
zzz ***Fri Sep 28 06:50:34 CST 2018
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 10 4677432 39858184 1748 20807180 3 2 344 11 0 0 2 1 96 1 0
0 2 4698476 39894948 2992 20783744 156 21104 191336 21180 7454 5922 1 3 90 6 0
4 0 4722068 39904756 2956 20759608 576 24148 189208 24256 5432 5621 1 2 93 4 0
3.类似数据库系统ALERT日志中的信息--不一定出现
WARNING: Heavy swapping observed on system in last 5 mins.
pct of memory swapped in [4.99%] pct of memory swapped out [8.89%].
Please make sure there is no memory pressure and the SGA and PGA
are configured correctly. Look at DBRM trace file for more details.