您的位置:首页 > 数据库 > Oracle

总结&备忘:oracle11gR2性能低下分析

2015-04-24 15:47 148 查看
背景:最近在做一套业务系统的性能测试,在同一台数据库服务器上安装了MySql5.6.4,前一亿数据测试结果大致为1.3万/秒的批量入库效率(测试表含22个字段,其中一个主键索引加5个普通字段索引),之后停了MySql服务,安装了Oracle11gR2,测试结果惨不忍睹,入4百多万记录的效率为326/秒.于是开始了探索oracle机制

分析发现redo日志的消费速度远远小于redo日志的生产速度

当时redo日志只有3组,每组50M

测试一开始很快就把redo日志写满,2组状态为active,1组状态为current

于是逐渐调大组内日志文件大小和redo日志组数量

最后加到500M*20组

至此日志消费才勉强跟上日志生产速度

但此时速度也才1千多每秒.期间也调过DBWR进程数量与Checkpoint相关参数,均无效果

后来开始怀疑DBWR的消费性能

用iostat命令监视磁盘写入的实时情况,发现在oracle批量入库过程中磁盘的忙碌程度为100%,但写入速度才9M/S左右,很奇怪

会不会是磁盘有故障?

于是用iostat监视拷贝一个5G文件的过程,发现该磁盘的忙碌程度为56%左右,写入速度基本在89M/S.

于是基本认定磁盘没故障.那只能是怀疑DBWR的写入策略了,但还没找到相关的资料

这很自然的想到增加磁盘IO性能的方向,于是找到了一台部署好磁盘阵列的服务器(CPU,内存都一样),上面已经安好oracle11gR2

在上面一测...空库开始时2.6万/秒...2千万数据后下降为1.5万/秒...3千万数据后下降为8千/秒左右.

测试过程中iostat显示磁盘忙碌程度为50%左右,写入速度最高近300M/S,少也有50M/S

至此,说明之前入库慢很有可能是无磁盘阵列导致的磁盘IO瓶颈,但也有可能后面的oracle数据库参数有所差异(阵列上的oracle只配置了400M*3组的Redo日志+1个DBWR进程),后续再对比确认一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: