1.设置memlock
编辑/etc/security/limits.conf
增加:
* Soft memlock 稍小于RAM值
* hard memlock 稍小于RAM值复制
Memlock,锁定内存地址的大小,值大于sga没关系的,所以我们可以设置这个值在我们想要的SGA size和物理内存size之间,这个值得单位是kb
验证
ulimit -l
104857600 --- 为memlock大小复制
2.禁用AMM特性
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 16
pga_aggregate_target big integer 200M
sga_target big integer 600M
SQL>
SQL> alter system set sga_max_size=640M scope=spfile sid='*';
SQL> alter system set sga_target=640M scope=spfile sid='*';
SQL> alter system set pga_aggregate_target=320M scope=spfile sid='*';
SQL> alter system reset memory_max_target scope=spfile sid='*';
SQL> alter system reset memory_target scope=spfile sid='*';复制
3.根据Oracle的脚本计算hugepage大小
计算时要确保Oracle实例已经启动
./hugepages_setting.sh
复制
hugepages_setting.sh脚本链接
4.根据脚本的计算值在2个节点编辑/etc/sysctl.conf
加入
vm.nr_hugepages = 30739
复制
5.设置USE_LARGE_PAGES
ALTER SYSTEM SET use_large_pages=only SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;复制
alert日志显示
****************** Large Pages Information *****************
Total Shared Global Region in Large Pages = 602 MB (100%)
Large Pages used by this instance: 301 (602 MB)
Large Pages unused system wide = 5 (10 MB) (alloc incr 4096 KB)
Large Pages configured system wide = 306 (612 MB)
Large Page size = 2048 KB
***********************************************************复制
6.查看
# grep HugePages /proc/meminfo
HugePages_Total: 1496
HugePages_Free: 485
HugePages_Rsvd: 446
HugePages_Surp: 0复制
上面的输出会发生变化,确保配置有效
the HugePages_Free value should be smaller than HugePages_Total and there should be some HugePages_Rsv.
另需确保环境变量DISABLE_HUGETLBFS unset,该变量会禁用Oracle使用Hugepage
7.禁用透明大页
ORACLE建议关闭透明大页的功能:透明大页会导致节点不可预料的重启,以及RAC的性能问题;透明大页也会导致单节点数据库环境发生不可预料的性能问题或延迟。
(1)查看是否开启
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
#复制
[always]表示启用
[never]表示禁用
# grep AnonHugePages /proc/meminfo
AnonHugePages: 20142080 kB复制
参考:
ALERT: Disable Transparent HugePages on SLES11, RHEL6, RHEL7, OL6, OL7 and UEK2 Kernels (Doc ID 1557478.1) Transparent Huge Pages
(2)和(3)两种方法,优先选择(2)
(2)修改文件/etc/grub.conf,添加一行:
transparent_hugepage=never
复制
(3)修改文件/etc/rc.local文件,添加:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi复制
(4)重启
Configuring HugePages for Oracle on Linux (x86-64) HugePages on Oracle Linux 64-bit (文档 ID 361468.1) Hugepages详解(详细介绍了Hugepages的原理) oracle 11g use_large_pages和AMM的使用
文章转载自运维笔记本,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1192次阅读
2025-04-27 16:53:22
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
869次阅读
2025-04-10 15:35:48
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
683次阅读
2025-04-30 15:24:06
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
584次阅读
2025-04-11 09:38:42
天津市政府数据库框采结果公布,7家数据库产品入选!
通讯员
571次阅读
2025-04-10 12:32:35
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
551次阅读
2025-04-14 09:40:20
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
489次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
465次阅读
2025-04-30 12:17:56
GoldenDB数据库v7.2焕新发布,助力全行业数据库平滑替代
GoldenDB分布式数据库
458次阅读
2025-04-30 12:17:50
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
352次阅读
2025-04-18 10:01:22