mysql重启备库会导致数据不一致么_mysql主从之间不同步问题

二、配置Hugepage

因为使用hugepage部分的共享内存不能被swap,也不能被其他进程使用,如果把hugepage共享内存设置过大,会导致系统hang住。

既要考虑性能,又要不浪费内存,一定要把使用hugepage部分的共享内存设置一个最佳值。下面的一些参考:

1) 如果是32位操作系统,且没有用VLM,则设置 hugetlb_pool=所有运行在该服务器上的实例SGA总和。如果有ASM,则每一个ASM实例再增加200M左右

2) 如果是32位操作系统,且使用了VLM,则设置 hugetlb_pool=所有运行在该服务器上的实例除data buffer外的SGA总和。如果有ASM,则每一个ASM实例再增加200M左右

3) 如果是64位操作系统,不管是否启用VLM,都设置 hugetlb_pool=所有运行在该服务器上的实例SGA总和。如果有ASM,则每一个ASM实例再增加200M左右

在RHEL 2.1/3/4设置Hugepage的方法各不一样,因为2.1版本太低,这里就不介绍了。

1、在RHEL3中设置hugepage

很简单,只需要在/etc/sysctl.conf添加如下行即可:

#设置1024M hugepage momory

vm.hugetlb_pool=1024

执行sysctl -p使得修改生效。

此时从/proc/meminfo中可以验证设置是否生效:

$more /proc/meminfo |grep -i HugePage

HugePages_Total:   512

HugePages_Free:    512

Hugepagesize:     2048 kB

因为设置的1024M的hugepage_pool,每页2M,所以会有512页。

理想情况下,当oracle实例启动后,HugePages_Free应等于或者接近0。

2、在RHEL4中设置hugepage

类似于RHEL3,在RHEL4配置hugepage也很简单,

1)在/etc/sysctl.conf添加如下行:

#设置1024M hugepage momory

vm.nr_hugepages=512

在RHEL4中,是直接设置hugepage的页数。

执行sysctl -p使得修改生效。

2) 在/etc/security/limits.conf 添加如下行

oracle           soft    memlock         1048576

oracle           hard    memlock         1048576

必须设置这个,否则启动数据库可能会报错:

ORA-27103: internal error

Linux Error: 11: Resource temporarily unavailable

此时从/proc/meminfo中可以验证设置是否生效:

$more /proc/meminfo |grep -i HugePage

HugePages_Total:   512

HugePages_Free:    512

Hugepagesize:     2048 kB

理想情况下,当oracle实例启动后,HugePages_Free应等于或者接近0。

如果不想设置hugepage,则设置vm.nr_hugepages=0即可。

有几点需要注意:

1) 无论RHEL3还是RHEL4,只要设置了hugepage_pool或者nr_hugepages,都意味着指定尺寸的内存被pin在内存中了。就算SGA需要的共享内存小于设置的hugepage_pool,这部分内存也无法被其他进程使用,所以,一定要计算好需要的大小,不宜设置过大的hugepage共享内存,避免浪费。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值