首页 > Linux操作系统 > Linux操作系统 > Linux的标准大页和透明大页
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/ ,如需转载,请注明出处,否则将追究法律责任。