最近数据库集群通过spotlight监控经常报一些警告:
global cache 总是有Miss的情况
Alarm raised 80.98 milliseconds latency across the interconnect. Average : 27.19 ms (averaged over 30 seconds)HighCluster latency (Interconnect Latency)
通过查找官方文档,发现如下:
确保 UDP 缓冲区大小合适
适用平台: Windows 除外的所有平台
原因: 私网可以说是 RAC 数据库的命脉。但是,如果未向 UDP 分配合适的缓冲空间用以发送和接收缓冲,则私网的性能将大幅降低。这将会导致您的集群出现稳定性问题。
更多信息:有关正确调整 UDP 缓冲区的更多信息,请参考以下文档:
Document 181489.1 Tuning Inter-Instance Performance in RAC and OPS
Document 563566.1 gc lost blocks diagnostics
注意: Windows 集群对 Cache fusion 通信使用 TCP,因此,UDP 缓冲区设置不适用于 Windows。
概要:
在oracle rac环境中,RDBMS收集global cache的工作负载情况,这个情况会在STATSPACK、AWR、GRID CONTROL中被报告。集群中每个节点的全局内存块丢失状态(gc cr block lost" and/or "gc current block lost")都代表着网络中包交互的问题。这样的状态都应该被监控以及评估一确保GCS/GES网络效率。任何的块丢失会标明网络包传输中的问题并且应该被研究。
绝大部分的global cache 块丢失都可以被联系到时网络错误配置的原因导致的。文件服务指南可以评估和查询到这行原因。
即使大多数的讨论集中于性能问题上,它也可能导致一个节点被逐出。oracle集群依赖于心跳机制来确认节点资格。如果网络心跳经常性的被drop,节点被逐出就会发生。以下状况会导致节点被逐出:
主要:"gc cr block lost" / "gc current block lost" in top 5 或者重大的等待事件
次要:
SQL traces report multiple gc cr requests / gc current request /
gc cr multiblock requests with long and uniform elapsed times
Poor application performance / throughput
Packet send/receive errors as displayed in ifconfig or vendor supplied utility
Netstat reports errors/retransmits/reassembly failures
Node failures and node integration failures
Abnormal cpu consumption attributed to network processing
注意:块丢失问题经常伴随着gc cr multiblock waits,例如:waits for scans of consecutive blocks
全局块丢失诊断导引:
1、错误或不可靠的线缆/网卡/转换器的配置连接 --这个很好检查,这里不做讨论。
2、不合理的UDP接受缓冲区大小设置/UDP缓存套接字溢出
描述:oracle rac全局内存块的变动通常会是爆发性的,因此,系统需要缓存接受这些包当等待CPU的资源的时候。不可用的缓存区域导致了全局包的丢失。在大多数UNIX系统中 用 'netstat -s' or 'netstat -su'将会得到帮助决定是缓冲区溢出还是内存缓冲接受的错误。
解决办法:包丢失的情况经常是服务器上UDP缓冲设置不充分所引起的。当出现包或块丢失的环境下,可以留心观察到 "global cache cr requests"的等待状况,通常这是由于内存设置不充分引起的。
当设置 DB_FILE_MULTIBLOCK_READ_COUNT 参数超过4的时候,会导致这一问题的出现,为了减轻这个问题带来的影响,通过增加UDP缓冲区和减小 DB_FILE_MULTIBLOCK_READ_COUNT 参数值可以做到。
判断你的UDP套接字缓冲是否溢出和包丢失在UNIX平台上,可执行如下:
‘netstat -s' 或'netstat -su’然后重点查看以下数值是否过大:
udpInOverflowsudpInOverflows
packet receive errors
fragments dropped
outgoing packet drop
注意:UDP包的丢失通常的结果是延时增加,如果netstat -s 中TCP项中"outgoing packets dropped" 增加的明显,增加wmem_default 和 wmem_max 参数值到 4MB可以解决这个问题。UDP的发送和接受缓冲值是依赖于系统的设置的。这些值是可以动态设置的。
net.core.rmem_default 代表socket的接收缓冲区的默认值
可以通过man tcp帮助中查到此参数的详细解释。如果此参数设置过小,将影响到能够接收到的UDP包的大小。
net.core.rmem_max 代表socket的接收缓冲区的最大值
可以通过man tcp帮助中查到此参数的详细解释。如果源代码中设置的值比此值大,这此值为准。
RHEL最初的设置如下:
net.core.rmem_default = 126976
net.core.rmem_max = 131071
推荐使用值:
#net.core.rmem_default = 524288
#net.core.wmem_default = 524288
#net.core.rmem_max = 4194304
#net.core.wmem_max = 4194304
3、低网络性能和高CPU利用率,‘netstat -s’报告包重组失败
状况描述:大UDP数据包可能被重组并依据Medium Transmission Unit(MTU)值发送多帧数据包,这些碎片数据包需要在接受端重组。高CPU利用率、不充分的重组缓冲区和UDP缓冲空间均可导致包的
重组失败。'netstat -s'报告了大量的’ "reassembles failed" 和 "fragments dropped after timeout" 在接受节点的IP状态栏中。
netstat -s 查看IP状态:
3104582 fragments dropped after timeout
34550600 reassemblies required
8961342 packets reassembled ok
3104582 packet reassembles failed
解决办法:增加碎片重组缓冲区,定义更多的重组区域。增加重组碎片的时间,增加UDP接受缓冲区去调节网络延时状况。
增加以下设置调节内存利用率:
IP分片缓冲区参数:
net.ipv4.ipfrag_low_thresh
net.ipv4.ipfrag_high_thresh
用于组装分片的IP数据报的最大内存量,它将直接影响到能够接收到最大的UDP包的大小。因为超过MTU值的包都会被分片,分片的IP包达到目的端后需选缓存起来,等所有包都到达之后再组装。如果缓存不够用,多余的将被丢弃,这会导致组装失败。
redhat linux最初的设置如下:
net.ipv4.ipfrag_low_thresh = 196608
net.ipv4.ipfrag_high_thresh = 262144
该设置能够支持的最大UDP大小约40000字节。
建议修改如下:
net.ipv4.ipfrag_low_thresh = 393216
net.ipv4.ipfrag_high_thresh = 524288
4、Global Cache local miss rate is raised
当本地的全局高速缓存丢失比例超过一定的门槛时候,我们通常需要警惕的是数据库中的热块问题。
当一个block被一个逻辑读的时候,集群中一个实例需要从另外一个实例的不同模式的内存中传输。可能会引起这样的丢失警告。
当一个热块被非常高频率的传输调用时,集群会出现过多的协调活动:
可以解决的办法如下:
1、对经常被调取的表进行分区
2、通过使用服务隔离应用活动
分享到:
相关推荐
Cache数据库表及其Global结构的查看.pdf
NodeRED为集成Global Cache和HomeKit提供了更加强大的平台。 示例: : 这个家庭桥梁插件很不错 我可以通过说“ Siri打开Marantz打开”或“ Siri打开松下电视打开”来成功打开和关闭Panasonic Plasma TV和...
GlobalProtect64
GlobalProtect64位安装包,安装请配置好信息。 还是需要有经验的人使用
GlobalMapper17补丁,不懂E文,压缩包内有一个global_mapper14.1.0汉化资源的电子表格文件,希望懂的朋友在此基础上完成汉化。
GlobalProtect.msi
Global Mapper 20汉化版是一款功能强大的地图绘制软件,集浏览、编辑、转换、打印等多种功能于一体,轻松绘制高程地图、光栅地图、矢量地图等,支持对比度调整、海拔高度查询、视线计算等,Global Mapper 20带来了3D...
global mapper的使用教程,很不错的。也正在学习中
非官方-到Global Cache的Itach ip2ir红外发射器设备的Ruby接口 安装 将此行添加到您的应用程序的Gemfile中: gem 'ruby-itach-ip2ir' 然后执行: $ bundle 或将其自己安装为: $ gem install ruby-itach-ip2...
Paloalto GlobalProtect windows64位客户端 4.1.11版本
宝马官方字体,符合官方媒体风格要求,BMW Type Global Regular
在windows上免安装的gnu global 6.6.5,包括gtags/global
GLOBAL
感谢您下载Global Mapper指南。本指南从Global Mapper布局、导入数据、使用数字化工具处理数据、操作属性、使用3D功能、使用LiDAR模块、导出和打印地图 等实质性干货,本入门指南旨在协助您学习使用Global Mapper的...
gnu global for windows版本 widon@widon-laptop:~$ ls Desktop/glo62wb/bin/ global.exe gozilla.exe gtags.exe sort.exe globash gtags-cscope.exe htags.exe
globalmapper17完美破解版,用于各种地图的显示与处理
Global_Mapper中文教程 学习使用Global_Mapper软件
const globalCacheDir = require ( 'global-cache-dir' ) const cacheDir = await globalCacheDir ( 'myapp' ) // Depending on the OS: // => '/Users/ehmicky/Library/Caches/myapp' // => '/home/ehmicky/.cache/...
global-mapper-入门指南,旨在协助global-mapper的基本操作,并帮助了解一些常用的功能。