RAC 心跳异常(ipReamsfails)的处理记录和分析
Posted wx58c6cc2e19ab5
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RAC 心跳异常(ipReamsfails)的处理记录和分析相关的知识,希望对你有一定的参考价值。
::: hljs-left
环境信息
Oracle 19.12
Oracle Linux 7.9
一:真实生产环境现象
轻度影响时:
- 用户反馈数据库连接失败、短暂持续几分钟后恢复正常
- crs日志有节点通信异常信息
- OSWatcher ipReamsfails 增长
重度影响时:
- 用户反馈数据库连接失败、生产业务停机
- crs节点踢出,操作系统重启
- 切换到dg库,仍然发生crs节点踢出,操作系统重启
- 停止数据库2节点。单实例数据库运行正常,观察两周无任何报错。
- OSWatcher ipReamsfails 大量增长
二:测试前,生产环境采取的动作:
- 修改操作系统内核参数从4M、3M增加到,15M、16M(官方文档ID:2008933.1)问题依旧
- 修改私网连接方式,采用网线直连,问题依旧
三:开始压力测试(采用swingbench)的结果
• 测试场景二:
• 测试场景三:
• 测试场景四:
四:测试总结
- 测试过程中压力是实际生产的10倍以上。
- 没有发现数据库节点驱逐现象。
- CRS日志有节点通信异常信息。
- OSWatcher 日志中有发现ipReamsfails增长。
五:最终解决
- 调整心跳交换机配置启用巨帧(Jumbo Frame)
- 调整心跳网卡 MTU大小=9000
六:后续的测试计划
- 升级操作系统内核测试
- 从Oracle Linux 切换为Redhat Linux 测试
- 新服务器测试
- 有条件的话,后续会补充不同系统和硬件平台的测试情况。没条件就鸽了。
七:问题分析和总结
• 什么情况下网络数据包会被放入ipfrag 缓存中,且造成ipReamsFails 值增长?
• 如何避免此类现象?
• 其他原因?
附:官方文档和参考描述
- Troubleshooting gc block lost and Poor Network Performance in a RAC Environment (Doc ID 563566.1)
参照原厂文档调整了心跳网卡直连方式、升级网卡驱动。 - IPC Send timeout/node eviction etc with high packet reassembles failure (Doc ID 2008933.1)
参照原厂文档调整了ipfrag_thresh。 - Recommendation for the Real Application Cluster Interconnect and Jumbo Frames (Doc ID 341788.1)
参照原厂文档调整了MTU大小9000,调整后问题没有复现。
遇到过该问题的可以一起讨论,目前还有未覆盖到的盲点,比如测试没有复现出RAC节点驱逐、只调整了私网心跳,没有涉及跟APP之间业务流量的调整。
:::
以上是关于RAC 心跳异常(ipReamsfails)的处理记录和分析的主要内容,如果未能解决你的问题,请参考以下文章
C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)