AWR报告中gc cr/current block lost可断定心跳延迟;重点查看RAC Statistics和Global Cache Stats中的Avg global cache block receive time(>10ms即异常)及Estd Interconnect traffic(突增至MB/s级表明流量暴增),结合OS层netstat分片失败、ping巨帧测试和ocssd日志交叉验证。
awr 报告里看到 gc cr block lost 或 gc current block lost,基本可以断定心跳延迟已发生;单纯看等待时间或 sql 执行慢,不等于心跳出问题,得先确认私网通信是否异常。
怎么看 AWR 里的心跳延迟指标
重点盯两个地方,不是 Top SQL,也不是 Instance Efficiency,而是 RAC Statistics 和 Global Cache Stats 部分:
-
Avg global cache block receive time (ms):正常应 10 ms 基本说明私网延迟严重 -
Estd Interconnect traffic (KB):正常每秒几百 KB,若突然跳到几 MB/s(比如 24 MB/s),说明 Cache Fusion 流量暴增,常因 MTU 小、丢包或带宽不足导致重传堆积 - 再扫一眼
Global Cache Load Profile中的Blocks served和Blocks received比值,若接收远大于服务,说明某节点在被动“拉块”,可能已是性能瓶颈节点
哪些 gc 等待事件直接指向心跳问题
不是所有 gc 等待都等于心跳坏,但以下这几个出现频率高、平均等待长,基本可归因于私网延迟或丢包:
-
gc cr block lost和gc current block lost:最典型。不是块真丢了,是请求发出去后没收到响应,超时重发,底层就是 IPC Send timeout 或 TCP 重传失败 -
gc buffer busy acquire/release:当 block 在传输途中卡住,后续进程争抢同一 buffer,等待堆叠,本质仍是传输延迟引发的连锁反应 -
gc freelist block busy:较少见,但若集中出现在某节点,可能该节点收包队列积压,ksxp 消息队列满,Avg message sent queue time on ksxp (ms)会同步飙升
注意:gc cr block 2-way 或 gc current block 2-way 等“2-way”类等待属正常开销,不能直接等同于故障。
结合 OS 层证据交叉验证
AWR 只反映结果,真因得下操作系统查。别只信 ethtool 显示“Link detected”,这些信号更关键:
- 跑
netstat -s | grep -i "reasm\|frag\|drop",重点看IpReasmFails是否持续增长——这是 IP 分片重组失败,99% 因 MTU 不匹配(比如一端设 9000,交换机或对端还是 1500) - 用
ping -c 2 -M do -s <size> node2-priv</size>测试巨帧:从-s 8972开始试,+1 失败就停;显示Frag needed and DF set (mtu = X)说明已超限 - 查
/var/log/oracle/crsd/ocssd.log,搜IPC Send timeout detected或misscount相关 WARNING —— 出现 “75% of misscount” 就该立刻干预,别等 100% -
crsctl get css misscount和crsctl get css disktimeout必须现场查,别信安装文档默认值,补丁升级后可能已被覆盖
容易被忽略的硬件与配置耦合点
调大 misscount 解不了心跳延迟,只会让驱逐来得更晚、更痛。真正卡脖子的地方往往藏在软硬交界处:
- 心跳网卡必须独占物理口,不能和业务网共用同一张卡或同一交换机 VLAN —— 即便做了 QoS,内核协议栈争抢 CPU 也会拖慢 ksxp 线程
- 启用巨帧(Jumbo Frame)必须端到端一致:网卡驱动、交换机端口、对端服务器、中间所有跳设备,漏一个就退化成大量分片
- 万兆网卡若用默认中断绑定(如只绑 CPU0),高流量下
ksxp收包线程会被饿死,Avg message sent queue time直接上几十毫秒 - 不要直连心跳线 —— Oracle 明确不支持 cross-cable,且无法扩展;单交换机无冗余,一旦故障整个集群失联
最后提醒一句:gc 类等待飙升时,先别急着调 _gc_policy_time 或 gc_files_to_locks,那些是治标;80% 的真实案例,修通私网比改任何数据库参数都管用。


















