Oracle Rac:关闭透明大页的原因及方法
【前言】
在 Oracle 安装之前的准备工作中,有一项必须的工作是:禁用透明巨页(Disabling Transparent
HugePages)。
那问题来了:为什么要关闭透明大页? 以及怎么进行禁用?
先来看下比较权威的介绍:
https://blogs.oracle.com/linux/performance-issues-with-transparent-huge-pages-
thp
划重点:
根据上述文中标红处,简单来说就是 Oracle Linux team 在测试的过程中发现,如果 linux 开启透明巨页
THP,则 I/O 读写性能降低 30%;如果关闭透明巨页 THP,I/O 读写性能则恢复正常。另,建议在 Oracle
Database 中不要使用 THP。
接下来看下透明巨大页面是个嘛?
Linux 下的大页分为两种类型:标准大页(Huge Pages)和透明巨页(Transparent Huge Pages)。
1). 标准大页(Huge Pages)是从 Linux Kernel 2.6 后被引入的。目的是用更大的内存页面(memory
page size) 以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。
2). 透明巨页(Transparent Huge Pages)缩写为 THP,透明超大页面(THP)在 RHEL 6 中默认情况下
对所有应用程序都是启用的。内核试图尽可能分配巨大的页面,主内核地址空间本身被映射为巨大的页面,减
少了内核代码的 TLB 压力。内核将始终尝试使用巨页来满足内存分配。如果没有可用的巨大页面(例如由于物
理连续内存不可用),内核将回退到正常的 4KB 页面。THP 也是可交换的(不像 hugetlbfs)。这是通过将大
页面分成更小的 4KB 页面来实现的,然后这些页面被正常地换出。
两者区别在于大页的分配机制,标准大页管理是预分配方式,而透明巨页管理则是动态分配方式。目前透明巨
页与传统大页混合使用会出现一些问题,导致性能问题和系统重启。ORACLE 官方不建议在使用 RedHat 6,
OEL 6, SLES 11 and UEK2 kernels 时开启透明巨页(THP),因为透明巨页存在一些问题:
1. 在 RAC 环境下,透明巨页(THP)会导致异常节点重启和性能问题;
2. 在单机环境中,透明巨页(THP)也会导致一些异常的性能问题;
评论