searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Oracle RAC性能问题分析及调优

2023-05-30 01:20:08
103
0

性能影响因素

数据盘IO性能

虽然Oracle RAC数据库读写操作,会大量使用内存缓存来提升性能,但在高并发、大量缓存未命中数据读写时,仍然需要依赖高性能的后端存储来支撑。当Oracle性能无法提升时,可以通过 iostat、sar、iotop等工具,检查磁盘的IOPS和读写速率是否已达磁盘性能极限。

心跳网络性能

Oracle RAC相比较Stand alone配置的Oracle数据库,增强了HA的高可用能力,但也多出来不同节点之间数据缓存同步的需要。老版本的Oracle RAC会直接通过 cluster_interconnect的心跳网络,进行数据块的同步。而云计算虚拟网络场景时,往往由于虚拟网络不支持jumbo frame的大MTU设定以及网络带宽配置较低等情况,导致心跳网络的传输能力达到极限,影响集群之间的数据同步效率,拖慢整体的Oracle RAC数据库性能。

可以通过iftop、iptraf等工具,监控心跳网络是否已达到瓶颈。

redo logfile

默认的Oracle RAC redo logifle设定较小,大量Transaction时,从集群日志中会看到redo logfile的频繁切换,这将导致数据库整体性能的较明显下降或不稳定。可以通过SQL plus的命令,修改redo logfile的大小

# 查看redo log大小
select group#,thread#,members,status,bytes/1024/1024 mb from v$log;

# 查看logfile物理位置
select group#, member from v$logfile;

# 新增较大size的logfile
alter database add logfile thread 1 group 5 ('+DATA/RACDB/ONLINELOG/redo_log_group_5_2g.log') size 2g;

测试工具

测试Oracle RAC基础性能,比较常见的是使用Oracle工程师Dominic Giles的开源工具Swingbench。但使用其进行性能测试时,需要正确的使用方法,并设定合理的配置参数。对于user count,并发用户数的设定尤为重要,intra think time和intermax/intermin参数的设定,也要结合并发用户数进行设定。

调优方向

AWR报告分析

AWR报告作为分析Oracle数据库性能的全面信息入口。可以通过Total Wait Time的占比分析,看出数据库应用的等待时间主要花在哪里。如下图的结果,可以看出集群数据同步相关的时间消耗(53.6%),超过了实际DB CPU使用的占比(29.5%)很多。而 gc buffer busy release, gc buffer busy acquire 等Global Cache 操作消耗了大量时间,因此需要排查集群的gc block同步情况。

设备性能监测

性能测试,需要能够清晰掌握操作系统到应用的各方面指标数据情况(当然,日志系统的信息的分析也有必要)。Oracle RAC集群数据库依赖CPu的并发、大内存cache、高性能磁盘、稳定大带宽的网络传输,其性能与CPU、内存、磁盘、网络、DB配置、测试工具等诸多因素相关联。一旦出现性能结果TPM不及预期的情况,需要对其相关的各因素进行逐项“把脉”,监控其是否为瓶颈因素。常用的性能相关监测工具如:

  • CPU:top, htop
  • 内存:vmstat
  • 磁盘:iostat, sar, iotop
  • 网络:iftop, iptraf
0条评论
0 / 1000
刘****雷
3文章数
0粉丝数
刘****雷
3 文章 | 0 粉丝
刘****雷
3文章数
0粉丝数
刘****雷
3 文章 | 0 粉丝
原创

Oracle RAC性能问题分析及调优

2023-05-30 01:20:08
103
0

性能影响因素

数据盘IO性能

虽然Oracle RAC数据库读写操作,会大量使用内存缓存来提升性能,但在高并发、大量缓存未命中数据读写时,仍然需要依赖高性能的后端存储来支撑。当Oracle性能无法提升时,可以通过 iostat、sar、iotop等工具,检查磁盘的IOPS和读写速率是否已达磁盘性能极限。

心跳网络性能

Oracle RAC相比较Stand alone配置的Oracle数据库,增强了HA的高可用能力,但也多出来不同节点之间数据缓存同步的需要。老版本的Oracle RAC会直接通过 cluster_interconnect的心跳网络,进行数据块的同步。而云计算虚拟网络场景时,往往由于虚拟网络不支持jumbo frame的大MTU设定以及网络带宽配置较低等情况,导致心跳网络的传输能力达到极限,影响集群之间的数据同步效率,拖慢整体的Oracle RAC数据库性能。

可以通过iftop、iptraf等工具,监控心跳网络是否已达到瓶颈。

redo logfile

默认的Oracle RAC redo logifle设定较小,大量Transaction时,从集群日志中会看到redo logfile的频繁切换,这将导致数据库整体性能的较明显下降或不稳定。可以通过SQL plus的命令,修改redo logfile的大小

# 查看redo log大小
select group#,thread#,members,status,bytes/1024/1024 mb from v$log;

# 查看logfile物理位置
select group#, member from v$logfile;

# 新增较大size的logfile
alter database add logfile thread 1 group 5 ('+DATA/RACDB/ONLINELOG/redo_log_group_5_2g.log') size 2g;

测试工具

测试Oracle RAC基础性能,比较常见的是使用Oracle工程师Dominic Giles的开源工具Swingbench。但使用其进行性能测试时,需要正确的使用方法,并设定合理的配置参数。对于user count,并发用户数的设定尤为重要,intra think time和intermax/intermin参数的设定,也要结合并发用户数进行设定。

调优方向

AWR报告分析

AWR报告作为分析Oracle数据库性能的全面信息入口。可以通过Total Wait Time的占比分析,看出数据库应用的等待时间主要花在哪里。如下图的结果,可以看出集群数据同步相关的时间消耗(53.6%),超过了实际DB CPU使用的占比(29.5%)很多。而 gc buffer busy release, gc buffer busy acquire 等Global Cache 操作消耗了大量时间,因此需要排查集群的gc block同步情况。

设备性能监测

性能测试,需要能够清晰掌握操作系统到应用的各方面指标数据情况(当然,日志系统的信息的分析也有必要)。Oracle RAC集群数据库依赖CPu的并发、大内存cache、高性能磁盘、稳定大带宽的网络传输,其性能与CPU、内存、磁盘、网络、DB配置、测试工具等诸多因素相关联。一旦出现性能结果TPM不及预期的情况,需要对其相关的各因素进行逐项“把脉”,监控其是否为瓶颈因素。常用的性能相关监测工具如:

  • CPU:top, htop
  • 内存:vmstat
  • 磁盘:iostat, sar, iotop
  • 网络:iftop, iptraf
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0