当前位置: 首页 > news >正文

Oracle 大页配置use_large_pages 参数解析

一、前因

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

二、检查确认

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

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

三、参数解析

在 19c 之前的早期版本中,有三个可能的值 – TRUEFALSEONLY。从 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 pagesNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
use_large_pages                      string      TRUE
SQL> show parameter sgaNAME                                 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 -gtotal        used        free      shared  buff/cache   available
Mem:             15           1           1           9          13           4
Swap:             7           0           7SQL> 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:00Per process system memlock (soft) limit = UNLIMITED
2025-07-16T04:13:07.478104-04:00Expected per process system memlock (soft) limit to lockinstance MAX SHARED GLOBAL AREA (SGA) into memory: 9540M
2025-07-16T04:13:07.478300-04:00Available system pagesizes:4K, 2048K
2025-07-16T04:13:07.478424-04:00Supported system pagesize(s):
2025-07-16T04:13:07.478486-04:00PAGESIZE  AVAILABLE_PAGES  EXPECTED_PAGES  ALLOCATED_PAGES  ERROR(s)
2025-07-16T04:13:07.478680-04:002048K             4770            4770             4770        NONE
2025-07-16T04:13:07.478739-04:00Reason for not supporting certain system pagesizes:
2025-07-16T04:13:07.478836-04:004K - 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]$

四、总结

参数值

核心功能描述

启动情况

性能相关说明

适用场景及特殊限制

TRUE

系统配置大页时可使用;优先分配大页,不足时用常规页

无论大页是否充足,均可启动

11.2.0.2 版本中若大页不足可能导致 ORA-04030

错误和性能下降;11.2.0.3 及之后版本支持混合页分配,性能更稳定

无特殊场景限制,是除特定云服务和本地 Exadata 外的默认值

FALSE

不使用大页,仅用常规页

可正常启动

可能导致严重性能下降(任何平台均可能受影响)

不推荐使用,仅 Oracle ASM 实例因 MEMORY_TARGET

启用自动设为 FALSE

时无性能问题

AUTO

启动时计算并请求所需大页数;大页不足时混合使用大页和常规页

无论大页是否充足,均可启动

性能稳定性中等,依赖系统大页配置情况

适用于希望尝试使用大页但允许 fallback 到常规页的场景

ONLY

要求整个 SGA 必须使用大页;大页不足时无法启动

大页充足则启动,否则启动失败

性能一致性好,推荐用于需要稳定性能的场景

云环境 Exadata 和 Base Database Service 的默认值;不可与 MEMORY_TARGET

等参数同时设置

AUTO_ONLY

启动时计算并请求所需大页数;仅在大页充足时启动,不足则失败

大页充足则启动,否则启动失败

性能稳定性好,确保 SGA 完全使用大页

19c 及之后版本的本地 Exadata 系统默认值

http://www.dtcms.com/a/283111.html

相关文章:

  • Antd中使用Table集成 react-resizable实现可伸缩列
  • 高性能上位机界面设计范式:C#与C++/C开发调试无缝衔接
  • AR智能巡检:电力运维的数字化变革
  • Raydium CLMM 协议
  • Kotlin比较接口
  • 安全初级作业2
  • HTTP vs HTTPS
  • RabbitMQ工作模式
  • Python类中魔术方法(Magic Methods)完全指南:从入门到精通
  • 分布式系统高可用性设计 - 监控与日志系统
  • 风电箱变、风机、升压站等场景在线监测:助力电力系统稳定可靠运行
  • [论文阅读] 人工智能 + 软件工程 | 用交互式可视化革新软件文档:Helveg工具的设计与改进
  • 21、鸿蒙Harmony Next开发:组件导航(Navigation)
  • 0系统与软件工程-标准体系
  • 【多线程的常见使用场景】
  • 工业自动化中EtherCAT转Profinet网关的速度控制模式配置与优化
  • 破壳萌图鉴(宝可梦) 2.1.2311052226/界面简洁流畅,没有广告
  • Optional:orElse 和 orElseGet 的底层逻辑,决定了它们的本质区别
  • 大模型呼叫系统选型指南:以云蝠智能VoiceAgent为核心的企业升级路径
  • Linux 下安装DM8数据库详细教程
  • Linux下保存Docker镜像文件至本地及启动
  • CSS:transition语法
  • Linux 定时器应用示例(修正版)
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十八课——图像高斯滤波金字塔的实现
  • RCV在电力大数据平台中的集成与标准化建设:推动数据资产价值释放的关键途径
  • 每日钉钉API探索:getAuthCode实现免登授权
  • STM32超声波模块
  • 基于Matlab改进大津法和Gabor滤波的织物缺陷检测系统
  • Java-数构链表
  • 聚合配送与传统配送平台的差异:从运营模式到市场价值