oracle ORA-32701 hang分析(二)---hugepage优化

来源:互联网 发布:hbase 修改数据 编辑:程序博客网 时间:2024/05/21 17:26

上次通过巡检发现数据库以下问题:

1. 两个节点间有大量的gc 

询问应用侧开发人员, 整个库一共三个用户, UCR、UOP、UQRY, 其中  UCR是所有表的原始创建用户,  UOP是UCR用户对应的程序操作用户, UQRY是一个查询用户,有对UCR所有表的查询权限。

应用侧生产程序是通过UOP来连接数据库,对所有的对象有DML的操作。除了我们自己的程序还有第三方程序通过UQRY来查询UCR的表。

重点是UQRY在一节点, UOP在二节点, 这样UCR的表会在两个节点有大量的交叉查询,从而导致GC。因此马上建议应用侧把所有的连接全部首先连接一节点。

修改完毕以后,GC问题解决


2. 内存问题

环境介绍: Linux 6.5 ,八路CPU, 64core ,内存256G

问题点:没有启用Hugepage,其中内存里面PageTable占用32G

free -m  可以看到系统有大量的内存被cached掉。

老库的pagetable占用到了29G!
 
dqg6ddspt1:~ # grep Page /proc/meminfo 
AnonPages:       5079144 kB
PageTables:     29073708 kB
AnonHugePages:   2412544 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
dqg6ddspt1:~ # 
dqg6ddspt1:~ # free -m
             total       used       free     shared    buffers     cached
Mem:        258298     122240     136058          0        178      85563
-/+ buffers/cache:      36498     221800
Swap:        32763          0      32763

调整参数如下:

vm.min_free_kbytes = 512000
vm.swappiness = 0
vm.dirty_ratio = 20
vm.vfs_cache_pressure = 200

调整以后需要重启主机。


调整以后系统内存情况如下:


新库的pagetable只占用了128M。
 
huibuy1[/home/oracle]$grep Page /proc/meminfo 
AnonPages:       2297620 kB
PageTables:       128736 kB
AnonHugePages:         0 kB
HugePages_Total:   44036
HugePages_Free:    12544
HugePages_Rsvd:    12541
HugePages_Surp:        0
huibuy1[/home/oracle]$
huibuy1[/home/oracle]$
huibuy1[/home/oracle]$free -m
             total       used       free     shared    buffers     cached
Mem:        258159      94725     163433          0        269       1543
-/+ buffers/cache:      92912     165246
Swap:        32767          0      32767

做完以上调整,运行至今一月有余,内存使用率,连接数,高耗事件等以前的异常情况全部消失。数据库系统运行稳定

0 0
原创粉丝点击