首先可以比较一下rac心跳正常情况和发生心跳延迟时的awr情况:
先比较心跳流量
正常情况:
在正常情况下,心跳网络每秒流量基本上很小,这里才580k。
异常情况:
发生异常时,一般流量较大,这里每秒流量达到了24M,如果带宽比较小或者MTU大小为默认的1500,可能造成较大的影响。
比较消息队列平均发生时间
正常情况:
正常小于1ms。
异常情况:
发生异常情况,这里延迟就达到了20多毫秒。
心跳延迟会导致rac数据库性能下降,看到awr最多的就是gc等待,比如:
“gc cr block lost”
“gc current block lost”
严重的情况下会导致节点驱逐重启。
发生心跳延迟或者异常,需要从以下几个方面排查:
1、心跳流量是否达到了网络带宽的上限,可以通过:ethtool eth3、ethtool eth4去确定网口的协商速率。
2、通过netstat -s去检查ip项超时丢弃的和重组失败的。
3、调整mtu后需要测试mtu设置,mtu服务器和交换机都要调整
ping -c 2 -M do -s 1450 rac1-pri
ping -c 2 -M do -s 1572 rac1-pri
ping -c 2 -M do -s 8000 rac1-pri
没有调整当超过1500会出现:Message too long,mtu=1500
当MTU设置成9000时,ping -c 2 -M do -s 8973 rac1-pri ,-s 超过8972时,会出现如下提示:
icmp_seq=0 Frag needed and DF set (mtu = 9000) --只要显示了mtu就说明超过了mtu的限制
正常情况:
1408 bytes from rac1-pri (172.16.28.1): icmp_seq=1 ttl=64 time=0.375 ms
4、当然还有可以通过oswatch的netstat日志去检查,当发现IpReasmFails指标开始增长,且增长速度很快,就说明私网通信有异常。
zzz ***Mon Dec 4 22:36:51 CST 2023
IpReasmFails 7121922 0.0
zzz ***Mon Dec 4 22:37:21 CST 2023
IpReasmFails 7121922 0.0
zzz ***Mon Dec 4 22:37:51 CST 2023
IpReasmFails 7121922 0.0
zzz ***Mon Dec 4 22:38:21 CST 2023
5、检查数据库或集群日志,当私网通信异常时,可能会有"IPC Send timeout detected"信息。