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

公司网站地址365建筑人才网

公司网站地址,365建筑人才网,交换链接或称互惠链接,网站建设与维护招聘条件在 Oracle 数据库管理中,HugePages(大页) 是优化大内存场景下性能的关键配置。通过减少页表条目和内存碎片,HugePages 能显著提升 SGA(系统全局区)的访问效率。本文结合 Oracle 官方文档,详细讲…

在 Oracle 数据库管理中,HugePages(大页) 是优化大内存场景下性能的关键配置。通过减少页表条目和内存碎片,HugePages 能显著提升 SGA(系统全局区)的访问效率。本文结合 Oracle 官方文档,详细讲解 HugePages 的配置步骤、验证方法及常见问题解决方案。


一、为什么需要配置 HugePages?
  1. 性能优化

    • 默认内存页大小为 4KB,当 SGA 较大时(如超过 8GB),页表条目数量激增,导致 CPU 频繁查询页表,增加开销。
    • HugePages(通常 2MB)减少页表条目,降低 TLB(Translation Lookaside Buffer)未命中率。
  2. 避免内存交换(Swap)

    • HugePages 锁定在物理内存中,不会被交换到磁盘,避免因内存交换导致的性能下降。
  3. 减少内核开销

    • 大页减少 kswapd 进程的 CPU 消耗,避免内存碎片化。

二、配置 HugePages 的步骤
1. 禁用 AMM(自动内存管理)

HugePages 与 AMM(MEMORY_TARGET)不兼容,需先禁用:

show parameter memory
-- 修改参数文件
ALTER SYSTEM SET MEMORY_TARGET=0 SCOPE=SPFILE;
ALTER SYSTEM SET MEMORY_MAX_TARGET=0 SCOPE=SPFILE;
-- 重启数据库
SHUTDOWN IMMEDIATE;
STARTUP;
2. 配置 memlock 限制

编辑 /etc/security/limits.conf,设置 Oracle 用户的内存锁定限制:

# 添加以下内容
* soft memlock unlimited   
* hard memlock unlimited  

验证设置生效

su - oracle
ulimit -l  # 应输出 unlimited
3. 计算 HugePages 数量

使用 Oracle 提供的脚本 hugepages_settings.sh((Doc ID 401749.1):

#!/bin/bash
#
# hugepages_settings.sh
#
# Linux bash script to compute values for the
# recommended HugePages/HugeTLB configuration
# on Oracle Linux
#
# Note: This script does calculation for all shared memory
# segments available when the script is run, no matter it
# is an Oracle RDBMS shared memory segment or not.
#
# This script is provided by Doc ID 401749.1 from My Oracle Support
# http://support.oracle.com# Welcome text
echo "
This script is provided by Doc ID 401749.1 from My Oracle Support
(http://support.oracle.com) where it is intended to compute values for
the recommended HugePages/HugeTLB configuration for the current shared
memory segments on Oracle Linux. Before proceeding with the execution please note following:* For ASM instance, it needs to configure ASMM instead of AMM.* The 'pga_aggregate_target' is outside the SGA andyou should accommodate this while calculating the overall size.* In case you changes the DB SGA size,as the new SGA will not fit in the previous HugePages configuration,it had better disable the whole HugePages,start the DB with new SGA size and run the script again.
And make sure that:* Oracle Database instance(s) are up and running* Oracle Database Automatic Memory Management (AMM) is not setup(See Doc ID 749851.1)* The shared memory segments can be listed by command:# ipcs -mPress Enter to proceed..."read# Check for the kernel version
KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`# Find out the HugePage size
HPG_SZ=`grep Hugepagesize /proc/meminfo | awk '{print $2}'`
if [ -z "$HPG_SZ" ];thenecho "The hugepages may not be supported in the system where the script is being executed."exit 1
fi# Initialize the counter
NUM_PG=0# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | cut -c44-300 | awk '{print $1}' | grep "[0-9][0-9]*"`
doMIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`if [ $MIN_PG -gt 0 ]; thenNUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`fi
doneRES_BYTES=`echo "$NUM_PG * $HPG_SZ * 1024" | bc -q`# An SGA less than 100MB does not make sense
# Bail out if that is the case
if [ $RES_BYTES -lt 100000000 ]; thenecho "***********"echo "** ERROR **"echo "***********"echo "Sorry! There are not enough total of shared memory segments allocated for
HugePages configuration. HugePages can only be used for shared memory segments
that you can list by command:# ipcs -mof a size that can match an Oracle Database SGA. Please make sure that:* Oracle Database instance is up and running* Oracle Database Automatic Memory Management (AMM) is not configured"exit 1
fi# Finish with resultsecho "Recommended setting: vm.nr_hugepages = $NUM_PG";# End
chmod 775 hugepages_settings.sh
./hugepages_settings.sh
# 输出示例:Recommended setting: vm.nr_hugepages = 1496

或手动计算:

vm.nr_hugepages >= SGA_Target/Hugepagesize(2M) + 冗余(建议 10%)
4. 修改内核参数

编辑 /etc/sysctl.conf,添加:

vm.nr_hugepages = 1496
vm.hugetlb_shm_group = dba  # Oracle 用户组

应用配置:

sysctl -p
5. 禁用透明大页(Transparent HugePages)

透明大页可能导致性能抖动,需禁用:

# 修改 GRUB 配置
sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="transparent_hugepage=never /g' /etc/default/grub# 判断操作系统是否使用UEFI方式启动
ls -ld /sys/firmware/efi# 如果上面查询目录存在使用如下方式重建grub配置文件(针对EFI方式)
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg# 否则使用如下方式重建grub配置文件(针对BIOS方式)
grub2-mkconfig -o /boot/grub2/grub.cfg# 重启生效
reboot# 验证禁用状态
cat /sys/kernel/mm/transparent_hugepage/enabled  # 输出应为 [never]
6. 设置 USE_LARGE_PAGES 参数

Oracle 11.2.0.2+ 引入此参数,控制 HugePages 使用策略:

  • TRUE:尝试使用 HugePages,若不足则回退到普通页(默认)。
  • ONLY:强制仅使用 HugePages,不足则数据库无法启动。
  • FALSE:禁用 HugePages。
SYS@db11g> show parameter use_large_pagesNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
use_large_pages                      string      TRUE
7. 重启服务器并验证
reboot

三、验证 HugePages 配置
1. 操作系统验证
grep HugePages /proc/meminfo# 期望输出:
HugePages_Total: 1496     # 配置的总大页数
HugePages_Free: 100       # 剩余大页(数据库启动后应大部分被占用)
HugePages_Rsvd: 100       # 预留大页(若 PRE_PAGE_SGA=false)
2. 日志验证

检查 alert.log,确认以下内容:

Mon Mar 17 14:29:20 2025
Starting ORACLE instance (normal)
************************ Large Pages Information *******************
Per process system memlock (soft) limit = UNLIMITED`Total Shared Global Region in Large Pages = 898 MB (100%) `Large Pages used by this instance: 449 (898 MB)
Large Pages unused system wide = 1611 (3222 MB)
Large Pages configured system wide = 2060 (4120 MB)
Large Page size = 2048 KB
********************************************************************

四、常见问题及解决
问题原因解决方案
ORA-27137: 无法分配大页HugePages 不足或 memlock 限制过小增加 vm.nr_hugepages 并检查 memlock
数据库性能未提升HugePages 未生效,SGA 使用普通页检查 USE_LARGE_PAGES 是否设置为 ONLY
HugePages_Total = HugePages_Free数据库未使用 HugePages确认 AMM 已禁用,数据库实例已启动
透明大页未禁用未更新 GRUB 或未重启执行 grubby 命令并重启服务器

五、总结
  • 核心配置:禁用 AMM → 设置 memlock → 计算 HugePages → 修改 sysctl.conf → 禁用透明大页 → 设置 USE_LARGE_PAGES=ONLY
  • 验证关键:通过 /proc/meminfov$sgainfoalert.log 确认配置生效。
  • 性能收益:减少页表开销、避免内存交换,显著提升大内存数据库性能。

通过以上步骤,可确保 Oracle 数据库高效利用 HugePages,适用于 OLTP、数据仓库等高并发场景。配置时需注意版本差异(如 11g 与 12c+ 的默认行为),并定期复查内存配置变化。


文章转载自:

http://24GxYmcx.yhwxn.cn
http://Lx9KapBn.yhwxn.cn
http://R0r7TJFB.yhwxn.cn
http://FzDS4qBM.yhwxn.cn
http://KZOZc4LC.yhwxn.cn
http://8FNK06Kk.yhwxn.cn
http://1Sf3eqeK.yhwxn.cn
http://HaUe6mmO.yhwxn.cn
http://hj4k0cVS.yhwxn.cn
http://Lgtdb6RO.yhwxn.cn
http://3qZUVrqp.yhwxn.cn
http://69wUkocl.yhwxn.cn
http://tM5oyWOd.yhwxn.cn
http://Yn4Gt8tO.yhwxn.cn
http://1yJ21OMj.yhwxn.cn
http://gBLKjEWv.yhwxn.cn
http://NxiONPCJ.yhwxn.cn
http://PHIw5qAw.yhwxn.cn
http://mwTbeUqQ.yhwxn.cn
http://rQuNa4xg.yhwxn.cn
http://GKxq3hp5.yhwxn.cn
http://GHchbBvs.yhwxn.cn
http://qeIiIlXK.yhwxn.cn
http://rPssaxyF.yhwxn.cn
http://bqMcofYe.yhwxn.cn
http://NnBSIrq2.yhwxn.cn
http://cMGbrGWM.yhwxn.cn
http://el4O5Eau.yhwxn.cn
http://9UJBGJXG.yhwxn.cn
http://L8hUWDrX.yhwxn.cn
http://www.dtcms.com/wzjs/721203.html

相关文章:

  • 网站后台登陆密码忘记了西亚网站建设科技
  • ip查询网站wordpress上传文件插件
  • 为什么网站需要备案湖南长沙招聘信息最新招聘2022
  • 淘宝网站建设方案模板西安制作网站公司哪家好
  • 杭州蚂蚁 做网站的公司广州正规网站建设公司
  • 网站架构原理用vue做网站
  • wap网站怎么发布官网建站平台
  • 石家庄网站建设公司黄页加强旅游网站建设
  • 销售 网站设计网站需要多少钱
  • 关于传媒的网站模板温州网站建设服务
  • 江西手机网站建设保山市城市建设网站
  • 注册域名之后如何做网站网站站开发 流量
  • 城乡建设部网官方网站建设网站基本流程
  • 如何建立自己的个人网站电商外贸平台大全
  • 工行网站跟建设网站区别外贸企业有哪些公司
  • 网站字体设计重要性做网站设计要注意什么问题
  • 建了网站但是百度搜索不到胶南建网站
  • 定制建设网站网站 站外链接
  • 网站的域名不能登录免费网站空间 推荐
  • 西安做网站公司必达平台搭建
  • 中兴建设云南有限公司网站建设网站的基础知识
  • 橙色主题手机网站做网站的必备软件
  • 主机屋做网站视频网站建设的必要
  • 佛山市公司网站建设哪家好南昌网站建设_南昌做网站公司
  • 新网站建设的感想如何建立网络销售平台
  • mm131网站用什么软件做的wordpress页面居中
  • 做网站合伙怎么分东莞图文短视频推广
  • 学校网站 建设国内购物网站大全
  • 网站更换域名seo长宁制作网站
  • 建立网站的费用cocos游戏开发