一、前因
再给一位客户的Exdata 2 节点 RAC 19C版本创建数据库并配置好优化参数后,客户一天发来一份健康检查报告,打开一看
use_large_pages
配置异常。 回想安装部署时特意确认了在db启动大页已经生效,为何会有此异常告警项?
二、检查确认

在DB中检查 配置的是参数是
AUTO_ONLY

启动日志也是正常使用上了大页内存。

三、参数解析
在 19c 之前的早期版本中,有三个可能的值 –
TRUE
、
FALSE
、
ONLY
。从 Oracle 11.2.0.3 开始,
TRUE
意味着实例将分配系统中可用的尽可能多的大页面,并从普通的小页面获取其余部分。
FALSE
将告诉它根本不使用大页面,而
ONLY
只有在系统中有足够数量的可用大页面来容纳所有 SGA 时才能启动实例。
TRUE
是所有数据库的默认值。
在 19c 版本中,多了一个值
AUTO_ONLY
,现在它是运行 Oracle Database 19c 的 Exadata 系统的默认值。
Database Reference
文档的描述看起起来与
ONLY
值的描述比较像。以下是文档的摘录:
指定在启动期间,实例将计算并请求它所需的大页面数量。如果作系统可以满足此请求,则实例将成功启动。如果作系统无法满足此请求,则实例将无法启动。
实践出真知 测一下不同参数它是如何产生作用的,测试环境没有配置大页面。
[root@localhost ~]# cat /proc/meminfo |grep H HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB [root@localhost ~]# cat /etc/sysctl.conf # For more information, see sysctl.conf(5) and sysctl.d(5). fs.aio-max-nr = 3145728 fs.file-max = 6815744 kernel.shmall = 4066380 kernel.shmmax = 16655892479 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 vm.swappiness = 10
当前数据库版本19.19、内存15G、SGA 9.5G
use_large_pages
参数设置为
AUTO_ONLY
并重新启动实例。
SQL> show parameter pages NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ use_large_pages string TRUE SQL> show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ allow_group_access_to_sga boolean FALSE lock_sga boolean FALSE pre_page_sga boolean TRUE sga_max_size big integer 9536M sga_min_size big integer 0 sga_target big integer 9536M unified_audit_sga_queue_size integer 1048576 SQL> !free -g total used free shared buff/cache available Mem: 15 1 1 9 13 4 Swap: 7 0 7 SQL> alter system set use_large_pages=auto_only scope=spfile; System altered. SQL>startup force
数据库重启后可以看到,大页面在系统上被自动配置以适应 SGA。
[oracle@localhost ~]$ cat /proc/meminfo | grep Huge AnonHugePages: 0 kB HugePages_Total: 4770 HugePages_Free: 11 HugePages_Rsvd: 11 HugePages_Surp: 0 Hugepagesize: 2048 kB [oracle@localhost trace]$ cat /etc/sysctl.conf fs.aio-max-nr = 3145728 fs.file-max = 6815744 kernel.shmall = 4066380 kernel.shmmax = 16655892479 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 vm.swappiness = 10
数据库实例能够更改内核配置并自行分配 大页内存空间,这个数字正是适合 SGA 所需的数字。
在alter日志中,也看到实例获取到了SGA所需大小的大页内存。
2025-07-16T04:13:07.478027-04:00 Per process system memlock (soft) limit = UNLIMITED 2025-07-16T04:13:07.478104-04:00 Expected per process system memlock (soft) limit to lock instance MAX SHARED GLOBAL AREA (SGA) into memory: 9540M 2025-07-16T04:13:07.478300-04:00 Available system pagesizes: 4K, 2048K 2025-07-16T04:13:07.478424-04:00 Supported system pagesize(s): 2025-07-16T04:13:07.478486-04:00 PAGESIZE AVAILABLE_PAGES EXPECTED_PAGES ALLOCATED_PAGES ERROR(s) 2025-07-16T04:13:07.478680-04:00 2048K 4770 4770 4770 NONE 2025-07-16T04:13:07.478739-04:00 Reason for not supporting certain system pagesizes: 2025-07-16T04:13:07.478836-04:00 4K - Large pagesizes only 2025-07-16T04:13:07.478900-04:00
如果关闭数据库会发生什么情况?
SQL> shutdown IMMEDIATE DATABASE closed. DATABASE dismounted. ORACLE instance shut down. SQL>
数据库已关闭,内存中还是分配了 hugepage,直到重启或修改。
[oracle@localhost trace]$ sysctl vm.nr_hugepages vm.nr_hugepages = 4770 [oracle@localhost trace]$
四、总结
|
参数值 |
核心功能描述 |
启动情况 |
性能相关说明 |
适用场景及特殊限制 |
|
|
系统配置大页时可使用;优先分配大页,不足时用常规页 |
无论大页是否充足,均可启动 |
11.2.0.2 版本中若大页不足可能导致
错误和性能下降;11.2.0.3 及之后版本支持混合页分配,性能更稳定 |
无特殊场景限制,是除特定云服务和本地 Exadata 外的默认值 |
|
|
不使用大页,仅用常规页 |
可正常启动 |
可能导致严重性能下降(任何平台均可能受影响) |
不推荐使用,仅 Oracle ASM 实例因
启用自动设为
时无性能问题 |
|
|
启动时计算并请求所需大页数;大页不足时混合使用大页和常规页 |
无论大页是否充足,均可启动 |
性能稳定性中等,依赖系统大页配置情况 |
适用于希望尝试使用大页但允许 fallback 到常规页的场景 |
|
|
要求整个 SGA 必须使用大页;大页不足时无法启动 |
大页充足则启动,否则启动失败 |
性能一致性好,推荐用于需要稳定性能的场景 |
云环境 Exadata 和 Base Database Service 的默认值;不可与
等参数同时设置 |
|
|
启动时计算并请求所需大页数;仅在大页充足时启动,不足则失败 |
大页充足则启动,否则启动失败 |
性能稳定性好,确保 SGA 完全使用大页 |
19c 及之后版本的本地 Exadata 系统默认值 |
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle 大页配置use_large_pages 参数解析
Oracle 大页配置use_large_pages 参数解析
26-03-03 - 金价疯涨,金饰退场:年轻人正在掀翻“黄金信仰”
金价疯涨,金饰退场:年轻人正在掀翻“黄金信仰”
26-03-03 - 从原理到实践:2025年企业级分布式管理系统及10+工具指南
从原理到实践:2025年企业级分布式管理系统及10+工具指南
26-03-03 - Oracle19C 19.28补丁发布,打补丁到19.28
Oracle19C 19.28补丁发布,打补丁到19.28
26-03-03 - Oracle 表空间不足?用 Shell 脚本实现自动扩容!
Oracle 表空间不足?用 Shell 脚本实现自动扩容!
26-03-03 - 通过ETL工具,高效完成达梦数据库数据同步至数仓Oracle的具体实现
通过ETL工具,高效完成达梦数据库数据同步至数仓Oracle的具体实现
26-03-03 - 数据库管理-第349期 Oracle DB 23.9新特性一览(20250717)
- 全球商用PC换代潮到来,DaaS行业步入黄金增长期
全球商用PC换代潮到来,DaaS行业步入黄金增长期
26-03-03 - 一次意想不到的ADG中断
一次意想不到的ADG中断
26-03-03 - 中国技术反哺全球,百奥赛图定义新药研发新范式
中国技术反哺全球,百奥赛图定义新药研发新范式
26-03-03
