Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3693327
  • 博文数量: 715
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(715)

文章存档

2023年(75)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

分类: LINUX

2021-01-22 21:36:33

rhel 7

sed -i '/GRUB_CMDLINE_LINUX=/ s/"$/ transparent_hugepage=never"/' /etc/default/grub
grub2-mkconfig > /boot/grub2/grub.cfg
如果是uefi启动的(判断方法是看/sys/fireware/efi目录是否存在),那么需要改为
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg  (很多新机器都是这种方式)

启动实例,执行hugepages.sh 获得大页个数,或者sga/2M+10

修改 /etc/sysctl.conf
vm.nr_hugepages=16400
vm.hugetlb_shm_group= id -g oracle

重启后检查
cat /sys/kernel/mm/transparent_hugepage/enabled

always madvise [never]

有的喜欢在 /etc/rc.local 中加入
echo never>/sys/kernel/mm/transparent_hugepage/enabled
echo never>/sys/kernel/mm/transparent_hugepage/defrag

即使设置后,cat /proc/meminfo 看到AnonHugePages 仍然不为0,这是因为

默认情况下,内核尝试在读取页面错误时使用巨大的零页面。即,当一个进程分配了大块内存时,内核可能会决定首先以“零大页”来支持该内存。这是内核中的一个大页面,已映射到任何虚拟存储区域,该虚拟存储区域应在首次访问时初始化为全零,并且保持映射为只读状态,因此,当进程首次尝试修改该内存时,它将获得另一个页面错误,此时内核将用可写页面替换只读的“零大页面”。

解决对策:
由于“ AnonHugePages”的大小小于总物理内存的百分之一,因此可以忽略。

参考:
Oracle Linux 7-“ transparent_hugepage = never”并在“已调整”的配置文件中被禁用,但仍然“ AnonHugePages”显示非零值(文档ID 2539138.1)

----
rhel 6
/etc/grub.conf


阅读(1664) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~