ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux的标准大页和透明大页

Linux的标准大页和透明大页

原创 Linux操作系统 作者:tiny_cion 时间:2021-08-09 10:47:33 0 删除 编辑

Linux 中大页分为两种: Huge pages ( 标准大页 ) 和  Transparent Huge pages( 透明大页 ) 。


Huge pages  是从 Linux Kernel 2.6 后被引入的,目的是通过使用大页内存来取代传统的 4kb 内存页面, 

以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。


Huge pages  有两种格式大小: 2MB  和  1GB , 2MB 页块大小适合用于 GB 大小的内存, 

1GB 页块大小适合用于 TB 级别的内存; 2MB 是默认的页大小。



Transparent Huge Pages  缩写  THP ,这个是 RHEL 6 开始引入的一个功能,在 Linux6 上透明大页是默认启用的。

 


最大的区别: 标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。



Transparent Huge pages存在的问题

Oracle 官方推荐我们使用Huge pages ,建议我们关闭 Transparent Huge pages ,因为透明大页存在一些问题: 

1. 在 RAC 环境下   透明大页( TransparentHugePages  )会导致异常节点重启,和性能问题;

2. 在单机环境中,透明大页( TransparentHugePages  ) 也会导致一些异常的性能问题。


永久关闭透明大页


[root@xmc12c2 ~]# more /sys/kernel/mm/transparent_hugepage/enabled

[always] madvise never


[root@xmc12c2 ~]# grep Huge /proc/meminfo

AnonHugePages:    413696 kB

ShmemHugePages:        0 kB

HugePages_Total:       0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB


如果AnonHugePages不为0,则说明开启了透明大页,如下操作关闭透明大页

[root@xmc12c2 ~]# cp /etc/default/grub /etc/default/grub.bak

[root@xmc12c2 ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

[root@xmc12c2 ~]# vi /etc/default/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=ol/root rd.lvm.lv=ol/swap rhgb quiet transparent_hugepage=never"

GRUB_DISABLE_RECOVERY="true"

添加加粗部分


[root@xmc12c2 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-4.14.35-1902.3.2.el7uek.x86_64

Found initrd image: /boot/initramfs-4.14.35-1902.3.2.el7uek.x86_64.img

Found linux image: /boot/vmlinuz-3.10.0-1062.el7.x86_64

Found initrd image: /boot/initramfs-3.10.0-1062.el7.x86_64.img

Found linux image: /boot/vmlinuz-0-rescue-2b006975f7b4484cb8fc38f8455e31f1

Found initrd image: /boot/initramfs-0-rescue-2b006975f7b4484cb8fc38f8455e31f1.img

done


然后重启OS


[root@xmc12c2 ~]# grep Huge /proc/meminfo 

AnonHugePages:         0 kB

ShmemHugePages:        0 kB

HugePages_Total:       0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB


[root@xmc12c2 ~]# more /sys/kernel/mm/transparent_hugepage/enabled

always madvise [never]


临时关闭透明大页

# echo never > /sys/kernel/mm/transparent_hugepage/enabled

# echo never > /sys/kernel/mm/transparent_hugepage/defrag


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30654353/viewspace-2785912/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2015-12-23

  • 博文量
    32
  • 访问量
    37530