前言
你有没有遇到过:有时候会发现RAC节点的CRS服务会自动重启,但是日志里却没有记录报错和重启原因。下面就来看看为什么会发生还有解决办法吧!
节点自动重启原因
1.当集群节点挂起一段时间或者一个或多个关键 CRS 进程无法被CPU调度时,会发生这种情况。可以但这种情况并不是由于CPU资源耗尽导致,而是因为那些进程都以实时优先级运行,所以可能是因为内存耗尽或者可用内存低导致。
2. 如果是数据库进程问题导致,则oprocd、cssdmonitor 和 cssdagent这三个进程可能会导致节点重启,并且日志文件没有显示任何错误。
3. 可能是由于此时内核交换页的非常繁忙或者是为了标识要释放的页而正忙于扫描内存。
4. 可能存在 OS 调度时的bug。
解决办法
1. 如果 CRS 版本为 11.1 或者更低,需要把“diagwait”设置为13
2. 如果OS为AIX,需要优化AIX VM参数,方法可参考MOS 811293.1
3. 如果OS为Linux,需要启用内存大页(Hugepage),并停用透明大页(Transparent HugePages)将内核参数“vm.min_free_kbytes”设置为512MB,将“swappiness”设置为100。如果内核版本小于等于2.6.18(例如:RHEL 5,Oracle Linux 5,SLES 10),则设置内核参数swappiness 为100
注:
1)配置内存大页的方法请参考本人的另一篇文章: http://blog.itpub.net/69992972/viewspace-2764357/
2)禁用透明大页的方法请参考本人的另一篇文章: http://blog.itpub.net/69992972/viewspace-2764784/
4. 检查是否有大量内存分配给了操作系统的 IO 缓冲区高速缓存。如果有,就需要减少 IO 缓冲区高速缓存量,或者增加从 IO 缓冲区高速缓存回收内存的比率
5. 增加OS内存大小
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992972/viewspace-2895357/ ,如需转载,请注明出处,否则将追究法律责任。