linux关闭透明大页永久生效,Linux关闭透明大页配置

一、为何要关闭透明大页

A--MOS获取 #翻译

由于透明超大页面已知会导致意外的节点重新启动并导致RAC出现性能问题,因此Oracle强烈建议禁用透明超大页面。

另外,即使在单实例数据库环境中,透明超大页面也可能会导致问题,并出现意外的性能问题或延迟。

因此,Oracle建议在运行Oracle的所有数据库服务器上禁用透明超大页面

#原版:

Because Transparent HugePages are known to cause unexpected node reboots

and performance problems with RAC, Oracle strongly advises to disable

the use of Transparent HugePages. In addition, Transparent Hugepages

may cause problems even in a single-instance database environment with

unexpected performance problems or delays. As such, Oracle recommends

disabling Transparent HugePages on all Database servers running Oracle.

B--https://blog.csdn.net/wzx19840423/article/details/53667809--博客截取

透明大页块:可以动态将系统默认内存叶块4kb,交换为Huge pages,在这个过程中,对于操作系统的内存的各种分配活动,都需要各种内存锁,直接影响程序的内存访问性能,这个过程对应用是透明的,在应用层面不可控制,对于专门优化4K page优化的程序来说,造成随机的性能下降问题。

Transparent Huge Pages (THP) are enabled by default in RHEL 6 for all applications. The kernel attempts to allocate hugepages whenever possible and any Linux process will receive 2MB pages if the mmap region is 2MB naturally aligned. The main kernel address space itself is mapped with hugepages, reducing TLB pressure from kernel code. For general information on Hugepages, see: What are Huge Pages and what are the advantages of using them?

The kernel will always attempt to satisfy a memory allocation using hugepages. If no hugepages are available (due to non availability of physically continuous memory for example) the kernel will fall back to the regular 4KB pages. THP are also swappable (unlike hugetlbfs). This is achieved by breaking the huge page to smaller 4KB pages, which are then swapped out normally.

But to use hugepages effectively, the kernel must find physically continuous areas of memory big enough to satisfy the request, and also properly aligned. For this, a khugepaged kernel thread has been added. This thread will occasionally attempt to substitute smaller pages being used currently with a hugepage allocation, thus maximizing THP usage.

In userland, no modifications to the applications are necessary (hence transparent). But there are ways to optimize its use. For applications that want to use hugepages, use of posix_memalign() can also help ensure that large allocations are aligned to huge page (2MB) boundaries.

Also, THP is only enabled for anonymous memory regions. There are plans to add support for tmpfs and page cache. THP tunables are found in the /sys tree under /sys/kernel/mm/redhat_transparent_hugepage.

二、禁用透明大页区在哪?

从RedHat6,OL6,SLES11和UEK2内核开始,实现并启用透明超大页面(默认)以尝试改进内存管理。透明HugePages类似于以前Linux版本中可用的HugePages。主要区别在于透明HugePages是在运行时由内核中的khugepaged线程动态设置的,

而常规的HugePages必须在启动时预先分配#禁用后,内存大页将在系统启动后初始化分配,内存大页不会动态调整

三、关闭透明大页步骤:

可以参考MOS文档:

200491d1ae6203cbdf7e02dca39a75b1.png

ALERT: Disable Transparent HugePages on SLES11, RHEL6, RHEL7, OL6, OL7, and UEK2 and above (Doc ID 1557478.1)

Oracle Linux 7 - How to disable Transparent HugePages for RHCK kernel? (Doc ID 2066217.1)

#操作:

#CentOS release 6.9

[root@bogon data]# lsb_release -a

Description:    CentOS release 6.9 (Final)

Release:        6.9

# cp /etc/grub.conf /etc/grub.conf.bak

# vi /etc/grub.conf本次配置

#boot=/dev/sda

default=1 #解释说明,默认系统启动,使用标题,引导序列1

timeout=5

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

hiddenmenu

title CentOS (4.4.132-1.el6.elrepo.x86_64) --引导,启动序列0

root (hd0,0)

kernel /boot/vmlinuz-4.4.132-1.el6.elrepo.x86_64 ro

root=UUID=e1c11d33-6775-4772-966a-1575e1660833 rd_NO_LUKS

KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto

LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet transparent_hugepage=never--可以不修改

initrd /boot/initramfs-4.4.132-1.el6.elrepo.x86_64.img

title CentOS (2.6.32-696.28.1.el6.x86_64) --引导,启动序列1

root (hd0,0)

kernel /boot/vmlinuz-2.6.32-696.28.1.el6.x86_64 ro #内核---参数

root=UUID=e1c11d33-6775-4772-966a-1575e1660833 rd_NO_LUKS

KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto

LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet transparent_hugepage=never --必须修改:

initrd /boot/initramfs-2.6.32-696.28.1.el6.x86_64.img --初始化

#LINUX 7

[root@bdp04 ~]# cat /proc/version

Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017

#

[root@bdp04 etc]# cd /etc/default/

[root@bdp04 default]# cp grub grub_bak_180508

[root@bdp04 default]# vi grub

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

GRUB_DEFAULT=saved

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never"

GRUB_DISABLE_RECOVERY="true"

生效配置

[root@bdp04 default]# cp  /boot/grub2/grub.cfg  /boot/grub2/grub.cfg_bak180508

[root@bdp04 default]#  grub2-mkconfig -o /boot/grub2/grub.cfg

#

重启系统后,查询如下,认为最简单方便的:是否禁用透明大页oracle@bdp04 ~]$ grep Huge /proc/meminfo

AnonHugePages:         0 kB  与透明大页有关,透明大页关闭,则显示0

HugePages_Total:   65560      大页总数量

HugePages_Free:    65560

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB

#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值