网站首页 > 技术文章 正文
Oracle HugePage配置
在操作系统Linux环境中,内存是以页Page的方式进行分配,默认大小为4K。如果需要比较大的内存空间,则需要进行频繁的页分配和管理寻址动作
Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transparent Huge Pages)。
- 标准大页(Huge Pages)是从Linux Kernel 2.6后被引入的。目的是使用更大的内存页面(memory page size) 以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。
- 透明大页(Transparent Huge Pages)缩写为THP,这个是RHEL 6开始引入的一个功能。
这两者的区别在于大页的分配机制,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。目前透明大页与传统大页混合使用会出现一些问题,导致性能问题和系统重启。
一、禁用透明大页THP
RAC环境下透明大页可能会造成不可预知的节点重启和各种性能问题,另外在单实例的环境下透明大页也会造成不可预知的性能问题。所以oracle强烈建议在所有运行oracle数据库的服务器上关闭透明大页
注:我自已机器上实验过,开启了hugepage,但是没关闭透明大页,导致Linux机器经常中断,ssh连不上
1、查看透明大页是否开启 【always】:代表开启 【never】:代表关闭
cat /sys/kernel/mm/transparent_hugepage/enabled
或
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
或
grep -i huge /proc/meminfo
AnonHugePages值>0代表是开启,=0代表关闭
2、关闭透明大页
Redhat6:
vim /etc/grub.conf
在quiet后面加上transparent_hugepage=never 重启机器
Redhat7:
vim /etc/default/grub
文件中的GRUB_CMDLINE_LINUX行添加:transparent_hugepage=never
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet transparent_hugepage=never"
再运行grub2-mkconfig 重启机器
grub2-mkconfig -o /boot/grub2/grub.cfg
二、开启hugepage
前提oracle内存管理方式不能为AMM,可以为ASMM
1、参考metalink(文档 ID 401749.1)提供的脚本,计算hugepages的大小,有需要要可以私信我。
[oracle@T-DB ~]$ ./hugepages_settings.sh
Recommended setting: vm.nr_hugepages = 3084
2、配置vm.nr_hugepages
echo "vm.nr_hugepages = 3084" >> /etc/sysctl.conf
3、配置内存锁(必须大于sga_max_size,本文SGA大小为6G)
这里设定oracle用户可以锁定内存的大小 ,以KB为单位。如果rac或实例ASM,需增加grid用户
oracle hard memlock 7168000
oracle soft memlock 7168000
grid hard memlock 7168000
grid soft memlock 7168000
[oracle@T-DB ~]$ ulimit -l
7168000
4、重启机器
三、检查hugepage大页使用
[oracle@T-DB ~]$ grep -i huge /proc/meminfo
AnonHugePages: 0 kB --代表透明大页关闭
HugePages_Total: 3084 --总共3084页
HugePages_Free: 2508 --空闲2508页,即当前大页被使用了3084-2508=576页,即被用了576*2M=1152M,小于sga_target。
HugePages_Rsvd: 2505 --操作系统承诺给Oracle预留2505页,即2505*2M=5010M(5010M+1152M==SGA_MAX_SIZE)
HugePages_Surp: 0
Hugepagesize: 2048 kB --每页是2M,不可修改
SQL> show parameter use_large_pages; (默认值:true)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
use_large_pages string TRUE
四、使用HugePages的注意事项
下面的三种情形应当重新配置HugePages
a、物理内存的增减或减少
b、在当前服务器上新增或移出Instance
c、Instance的SGA大小增加或减少
如果未能调整HugePages,可能会引发下面的问题
a、数据库性能低下
b、出现内存不足或者过度使用交换空间
c、数据库实例不能被启动
d、关键性系统服务故障
猜你喜欢
- 2024-10-15 详解Oracle 性能优化之内核的shmall、shmmax和信号灯参数
- 2024-10-15 Oracle基础知识杂谈 oracle的
- 2024-10-15 ORACLE不常用冷知识之Package oracle中package怎么执行的
- 2024-10-15 使用zabbix监控Oracle内存占用高 oracle占用内存过高
- 2024-10-15 记一次Oracle异常关闭资源没有被释放,导致无法正常重启的故障
- 2024-10-15 oracle性能调优-impdp导入加速 oracle19c impdp
- 2024-10-15 oracle实例是什么 oracle实例是什么 lisener
- 2024-10-15 十个最流行的Oracle性能指标,DBA必知
- 2024-10-15 只需3分钟,学会Oracle数据库自动SGA管理
- 2024-10-15 优化体系--oracle索引篇 oracle索引优化原则
你 发表评论:
欢迎- 最近发表
-
- 前端流行框架Vue3教程:13. 组件传递数据_Props
- 前端必看!10 个 Vue3 救命技巧,解决你 90% 的开发难题?
- JAVA和JavaScript到底是什么关系?是亲戚吗?
- Java和js有什么区别?(java和javascript的区别和联系)
- 东方标准|Web和Java的区别,如何选择这两个专业
- 前端面试题-JS 中如何实现大对象深度对比
- 360前端一面~面试题解析(360前端笔试)
- 加班秃头别慌!1 道 Vue 面试题,快速解锁大厂 offer 通关密码
- 焦虑深夜刷题!5 道高频 React 面试题,吃透 offer 稳了
- 2025Web前端面试题大全(整理版)面试题附答案详解,最全面详细
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)