Linux内存大页设置
实际环境中,遇到3次由于内存大页设置参数不合理或者错误,导致系统内存不足,或者数据库内存不足的问题。
按照如下方式,推荐设置大页参考下发设置!
参考
HugePages on Oracle Linux 64-bit (Doc ID 361468.1)
1.建议配置Linux 内存大页=Oracle SGA大小+1G 或者 1~2个页块 4Mbytes
2.SGA大小建议参考如下
8G物理内存: SGA=3G PGA=1G
16G物理内存: SGA=6G PGA=2G
32G物理内存: SGA=16G PGA=4G
64G物理内存: SGA=32G PGA=8G
128G物理内存:SGA=72G PGA=24G
256G物理内存:SGA=120G PGA=40G
512G物理内存: SGA=240G PGA=80G
3.Linux用户使用大页的限制,无限制!
#vi /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
4.配置大页,共享内存参数设置
#vi /etc/sysctl.conf
###kernel.shmmax = 536870912 (以字节为单位,物理内存数量(MB为单位)*0.75*1024*1024,为内存的0.75倍)
###kernel.shmall = 2097152 (根据shmmax来计算次值/4096) getconf PAGE_SIZE
#vm.nr_hugepages 大页设置=大页内存(m)/2(Hugepagesize)
#大页设定多大的值,这个要根据系统SGA的配置来定,一般建议大页的总占用量大于系统上所有SGA总和+1GB【ASM实例如果没有关闭AMM也无法使用大页】
5.关闭透明大页【适用于redhat6.9]
#重启后查看是否关闭:always madvise [never] 括号括到never为关闭
cp /etc/grub.conf /etc/grub.conf_20190625.bak
vim /etc/grub.conf
transparent_hugepage=never
重启主机
#查看是否关闭:
grep Huge /proc/meminfo