在Oracle RAC环境中,无论我们从AWR自动负载性能报告、Statspack或者Grid Control中都可以找到Oracle数据库软件所收集的全局缓存工作负载统计信息(global cache work load statistics);其中就包含了全局缓存块丢失(Global cache lost blocks)的统计信息(这些丢失的全局缓存块可能是gc cr block lost或者gc current block lost),若集群中的任意节点出现大量的全局缓存块丢失(下文简写为gc blocks lost),则可能意味着内联(private)网络存在问题或者packet网络包处理低效。通过监控和评估这些全局缓存的相关统计信息,可以有效保证内联全局缓存(interconnect Global Cache)和全局队列服务(Global Enqueue Service)(GCS/GES)以及整个集群的正常工作。全局缓存块丢失一般预示着网络包处理存在问题并需要进一步勘察。另外全局缓存块丢失(gc blocks lost)的问题常会伴随着gc cr multiblock waits等待发生(传输多个连续的数据块全局缓存)。

就目前来看最有嫌疑造成或加速gc blocks lost的”元凶”往往是因为错误地或者不当的配置了内联网络(interconnects)。


主要症状:

‘gc cr block lost’或’gc current block lost’成为实例中Top 5的主要等待事件


次要症状:

1.SQL trace报告显示多次出现gc cr requests,gc current request等待事件

2.出现长时间的gc cr multiblock requests等待

3.糟糕的应用性能与吞吐量

4.ifconfig或其他网络工具显示存在大量的网络包packet发送接收(send/receive)错误

5.netstat报告显示存在errors/retransmits/reassembly等失败

6.单个或多个节点失败

7.由网络处理引发的异常CPU使用率


二、案例


202058247.png

202250199.png

Global Cache问题一定要和OS和Network层结合起来看,ifconfig、netstat、syslog信息极易获得,nmon、osw亦有价值。


相关解决方法;http://www.oracledatabase12g.com/archives/tag/interconnect