Oracle 标准大页和透明大页
说明:
标准大页(HugePages)
标准大页(HugePages)是从 Linux Kernel 2.6 后被引入的。
目的是用更大的内存页面(memory page size)以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。
透明大页(Transparent HugePages)
透明大页(Transparent Huge Pages)缩写为THP,透明超大页面(THP)在RHEL 6中默认情况下对所有应用程序都是启用的。
内核试图尽可能分配巨大的页面,主内核地址空间本身被映射为巨大的页面,减少了内核代码的TLB压力。
内核将始终尝试使用大页来满足内存分配。
如果没有可用的巨大页面(例如由于物理连续内存不可用),内核将回退到正常的4KB页面。
THP也是可交换的(不像hugetlbfs)。
这是通过将大页面分成更小的4KB页面来实现的,然后这些页面被正常地换出。
透明大页存在的问题:
Oracle Linux team在测试的过程中发现,如果linux开启透明大页THP,则I/O读写性能降低30%;
如果关闭透明大页THP,I/O读写性能则恢复正常。
另,建议在Oracle Database中不要使用THP。
ORACLE官方不建议在使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 时开启透明大页(THP),因为透明大页存在一些问题:
1. 在RAC环境下,透明大页(THP)会导致异常节点重启和性能问题;
2. 在单机环境中,透明大页(THP)也会导致一些异常的性能问题;
标准大页和透明大页区别:
两者区别在于大页的分配机制,标准大页管理是预分配 方式,而透明大页管理则是动态分配 方式。
目前透明大页与传统大页混合使用会出现一些问题,导致性能问题和系统重启。
如何开启标准大页(HugePages)
适用于:
1.Kernel Version 2.6及更高。
2.Oracle AMM内存管理和HugePages不兼容,确保在AMM关闭的情况下启动HugePages。
启用HugePages方法:
1 运行以下命令以确定内核是否支持HugePages
$ grep Huge /proc/meminfo
2 配置memlock
在/etc/security/limits.conf文件中设置memlock值,memlock设置以KB为单位。
当启用HugePages内存时,最大锁定内存限制应至少设置为当前服务器内存的90%。
禁用HugePages内存时,最大锁定内存限制应设置为至少3145728 KB(3 GB)。
例如,如果安装了64 GB RAM,则添加以下条目以增加最大锁定内存地址空间:
* soft memlock 60397977
* hard memlock 60397977
也可以将memlock值设置为高于SGA要求的值。
再次以oracle用户身份登录并运行ulimit-l命令以验证新的memlock设置:
su - oracle
$ ulimit -l
3 启动实例
检查实例是启动状态
srvctl status instance -d dbname
如果没启动,手动启动实例
srvctl start instance -d dbname -i instance_name -o open
4 使用脚本为当前共享内存段计算hugepages配置的建议值:
root用户下执行
chmod +x hugepages_settings.sh
./hugepages_settings.sh
脚本来自My Oracle Support note 401749.1,脚本详细内容见末尾。
5 停止数据库实例
srvctl stop instance -d dbname -i instance_name -o immediate
6 设置vm.nr_hugepages内核参数
写入配置文件,永久生效
vi /etc/sysctl.conf
vm.nr_hugepages=<value from above>
sysctl -p
# sysctl -w vm.nr_hugepages=<value from above> 临时改变,重启失效
7 启动实例
srvctl start instance -d dbname -i instance_name -o open
8 检查可用的hugepages
$ grep Huge /proc/meminfo
如果配置没生效,需要重启服务器
[root@rac1 ~]# grep Huge /proc/meminfo
AnonHugePages: 0 kB
HugePages_Total: 179
HugePages_Free: 9
HugePages_Rsvd: 7
HugePages_Surp: 0
Hugepagesize: 2048 kB
参考:
1 2 3 |
|
如何关闭透明大页(Transparent HugePages)
Linux7 默认情况下 是开启透明大页功能的。检查系统对应版本
[root@DB ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
关闭THP
[root@DB ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
默认情况下,状态为 always,需要调整为 never
THP 禁用方的几种方法
方法 1:
[root@DB ~]# vi /etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap rd.lvm.lv=rhel/root rhgb quiet transparent_hugepage=never"
运行下列命令使之修改生效:
[root@DB ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
方法 2:
1 2 3 4 5 |
|
[root@DB ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
方法 3:
[root@DB ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@DB ~]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always madvise [never]
查看是否关闭透明大页
[root@DB ~]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always madvise [never]
如果输出结果为[always]表示透明大页启用了。[never]表示透明大页禁用;
[root@DB ~]# grep -i HugePages_Total /proc/meminfo
如果 HugePages_Total,返回 0,也意味着透明大页禁用了
[root@DB ~]# cat /proc/sys/vm/nr_hugepages
返回 0 也意味着透明大页禁用了。
hugepages_settings.sh 脚本内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
|
Oracle 标准大页和透明大页相关推荐
- 【内存】Linux 页表、大页与透明大页|大页内存
目录 页表与MMU CPU访问的是什么地址(虚拟地址,物理地址)? MMU如何工作 MMU对内存的保护 多级页表 一. 内存映射与页表 1. 内存映射 2. 页表 4. 页表的简单工作原理 大页 什么 ...
- Linux 透明大页 THP 和标准大页 HP
作者 | JiekeXu 来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT) 大家好,我是JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Linux 透明大页 TH ...
- 透明大页相关内核参数_Linux7.4 关闭透明大页
1 THP 背景知识补充说明 在Linux6.x之后的平台,在安装Oracle数据库的时候都建议关闭透明大页 Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transpa ...
- ubuntu 禁用透明大页_Linux关于透明大页的使用与禁用介绍
随着计算需求规模的不断增大,应用程序对内存的需求也越来越大.为了实现虚拟内存管理机制,操作系统对内存实行分页管理.自内存"分页机制"提出之始,内存页面的默认大小便被设置为 4096 ...
- linux透明大页内存,Linux如何禁用透明大页
环境: RHEL 6.5 + Oracle 11.2.0.4 RAC 1.确认透明大页是否开启 grep HugePage /proc/meminfo cat /sys/kernel/mm/redha ...
- linux 内存管理 Transparent HugePages 透明大页 简介
1. 介绍 从RedHat6, RedHat7, OL6, OL7 SLES11 and UEK2 kernels开始,透明大页默认是被开启的以便去改善操作系统的内存管理.透明大页与之前版本的传统意义 ...
- Linux 关闭透明大页(transparent_hugepage)和 NUMA
有些情况下需要关闭Linux 服务器的 透明大页和 NUMA,比如安装 Oracle 数据库! 下面介绍如何永久关闭 透明大页 和 NUMA 的命令: Linux 6: 关闭透明大页: cat > ...
- 大页内存与透明大页详解
大页内存 大页内存(HugePages),有时也叫"大内存页"."内存大页"."标准大页".操作系统以内存页为单位管理内存,内存页的大小对系 ...
- 透明大页相关内核参数_Oracle关于内存参数及大页设置的相关概念和设置之hugepage概念和配置...
一.概念: Oracle 数据库和 Linux 内存管理 系统中使用的内存越多,管理该内存所需的资源也就越多.对于 Linux 操作系统,通过 Linux kswapd 进程和页表内存结构(针对系统中 ...
最新文章
- 中兴f477v2超级管理员_中兴F650光猫修复
- java最基础语句,Java基础:Java语句
- Java HttpSessionListener监听器的使用
- continue 的用户及实例
- 关于string,我今天科普的
- C++ 输入一行未知个数的整数
- MySQL Replication主从复制环境下修改主库IP
- 2013-2018卷积神经网络中十个最重要的概念与创新
- vivox6Android版本,vivo x6有几个版本?vivo x6各版本区别对比评测
- 解雇IE补丁操作方法
- 关于AP没办法获取IP地址故障排查及思路。
- 获取Dell,Lenovo电脑的保修期
- 服务器pe系统ghost系统安装教程,U盘PE启动安装GHOST系统图文教程
- 第六章第三十题(游戏:双骰子赌博)(Game: craps)
- JAVA超简单输名字骂人_骂人不带脏字的网名非常有趣
- 转特权:NIOS2下的SDHC调试
- python字符串分片_Python第六章字符串ppt
- shell C语言编程
- 97年世界编程大赛一等奖作品
- kubernetes(k8s)全面介绍
热门文章
- 2021年高考英语卷三成绩查询,2021年全国3卷高考外语卷难不难,今年全国3卷高考外语卷难度系数点评...
- vue 封装dialog_自己封装dialog组件
- 怎么像编辑提供wb原图_PLoS One:7月1日起,投稿必须提供原始WB图片!
- php中td的属性设置,html table表格是什么?table标签中各种属性的使用方法
- SpringBoot集成JPA根据实体类自动生成表
- 微软在Build 2019大会上发布Fluid Framework协作平台
- 11.7 iostat: I/O信息统计
- LVS、Nginx 及 HAProxy 工作原理
- 2.2 CPU 上下文切换是什么意思?(下)
- 分区和分片的区别_MySQL分区与分片的差异