事件起因:
oracle 19c 测试库在使用中内存总是耗尽,做如下一些排查free -h查看总内存256GB,剩余只有5.8GB,IPCS查看oracle使用了192GB的共享内存,
似乎也还算正常,reboot重启系统之后内存剩余量也是只有5.8GB。


停掉oracle后执行top也看不出有什么进程占用内存过高的情况

查看内核参数,发现shmmax,shmall设置不合理,同时还开启大页内存nr_huggepages。

参数优化:
#关闭大页内存nr_huggepages,在vm.nr_huggepages的前面加上#注释即可
#vm.nr_huggepages
# 限制单个共享内存段大小(需大于SGA),以物理内存为256GB为例
kernel.shmmax = 212600881152# 198GB(单位:字节)
# 总共享内存页数(根据系统内存计算)
kernel.shmall = 51904512# 198GB / 4KB = 3145728页
执行sysctl -p使修改的参数生效


reboot重启系统再次查看看内存剩余量为243G,已经正常

启动oracle再次验证内存使用情况已经正常,剩余134GB

总结:
通过这一次内核参数的调整,对shmmax,shmall,sga_max有了进一步的理解。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




