暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORACLE服务器关闭透明大页并启用大页

IT那活儿 2022-08-21
4398
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

大页(HugePages)与透明大页(Transparent Huge pages)

HugePages主要是为了减少大内存对CPU的开销,服务器默认页面大小为4KB,HugePages的大小是2048KB,这样可以减少页面的遍历,提高服务器性能。

Oracle服务器为什么要禁用透明大页

对于Linux的大内存Oracle服务器而言,如果不关闭透明大页可能会导致RAC的节点重启和服务器CPU压力加大导致的性能问题。

-点击查看答案-


关闭透明大页

1. 查看透明大页是否开启
通过grep Huge proc/meminfo命令发现AnonHugePages的值非零,说明透明大页为启用状态。
2. 关闭透明大页(64位的RHEL7版本)
修改/etc/default/grub文件,在GRUB_CMDLINE_LINUX行末尾添加transparent_hugepage=never,如图下图所示。
执行grub2-mkconfig -o /boot/grub2/grub.cfg命令重新生产文件:
3. 重启服务器
重启服务器永久生效,重启后AnonHugePages值为零说明透明大页已关闭:

启用大页

1. 检查自动内存管理是否启用
HugePages与Oracle的自动内存管理不兼容需要关闭自动内存管理。
如图所示memory_max_target和memory_target的值为零则自动内存管理已关闭。
2. 查看SGA配置情况
Oracle服务器配置大页前需要先获取到SGA的值和大页的值:(以下为测试环境数据)
Oracle SGA:
如上图所示,SGA的值为3 GB(3072 MB),该值可通过业量进行调整。
3. 配置大页
查看Linux 大页大小:
如上图所示,Hugepagesize的值为2048 Kb(2 MB),该值为系统默认值不可修改。
通过修改/etc/sysctl.conf文件的vm.nr_hugepages参数的值来配置大页:
vm.nr_hugepages的值需要略大于SGA/Hugepagesize(3072/2=1536),该值还可以通过官方提供的脚本来获取(Document 401749.1)。
vm.nr_hugepages的值可设置为1550,如下图所示:
设置完成后需要重启主机。
检查大页是否生效:
如上图所示大页已经生效,HugePages_Total等于HugePages_Free说明大页未被使用,启动数据库后再查询大页使用情况:
通过查看数据库启动日志确定大页是否配置成功:
数据库启动后可以看到大页已经被使用,说明配置成功。

本文作者:张红久(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论