Oracle在RAID 1和RAID 5上的性能比较

来源:互联网 发布:淘宝cdkey怎么发货 编辑:程序博客网 时间:2024/05/11 13:04
背景:在本次测试之前,有其它团队的测试人员曾经对RAID 1和RAID 5进行了对比测试,测试结果RAID 5的性能出奇的好,由于我们对测试结论的怀疑而引出针对Oracle下的RAID 1和RAID 5的性能对比测试。最终测试结果印证了我们推测。但为什么之前由其它测试人员针对RAID 1和RAID 5的测试结果与我们的结论截然相反呢?

在之前由其他测试人员针对RAID 1与RAID 5的对比测试中,使用两种方式进行测试,一种是用Unix下的dd命令,对顺序读写进行测试,另外一种是基于硬盘的Benchmark工具(IOMeter、VDBench),对顺序、随机、典型和高命中率等进行测试,测试中特别是文件拷贝测试,Raid 5的读写性能好于Raid 1。
众所周知,一般来说,特别是早期的RAID系统中,RAID 5的写性能要比RAID 1要差很多,因为对应每次的硬盘写入操作RAID 5都需要进行复杂的校验运算后再写入信息,而对应硬件的RAID 1无需额外的运算,理论上和不做镜像只写入一块磁盘的操作性能相同。正因为如此,在经典的Oracle部署实践准则中要求Oracle的Redo log不能放在基于Raid 5的存储系统中。
但为什么在本次测试中基于Benchmark软件及dd命令的测试结果和Oracle的性能测试的结果相反呢?
其奥秘所在就是由于当下最新的Raid 5系统中都采用了大容量的Cache,以弥补其写入性能不佳的状况,因此在简单的普通测试中,Raid 5甚至好于Raid 1。
由此给我们带来的疑问是:是否Raid 5在任何情况下都比Raid 1的性能好呢?对于需要频繁、密集插入/更新操作的OLTP Oracle系统也同样适用呢?前述中所提到的Oracle经典部署准则是否仍然有效呢?
其实问题的关键就在于大容量的Cache是否写满,再大Cache也会有耗尽的时候,当Cache不能满足读写要求时,性能就会急剧下降,这就是为什么在Oracle的测试中,Raid 5的性能会出现差异。由此也给我们带来思考,性能测试如何设计更有效?
1. 需要大容量的数据长时间的测试
  无论是硬件的Cache,还是基于软件的数据持有(例如:J2EE中针对用户的请求,中间件进行数据缓存),本测试规则同样适用,在长时间大容量的测试下,更能测试中系统的瓶颈并更接近现场实际实际使用情况
2. 规则与不规则数据及Case
   针对多种情况下的性能表现评估
原创粉丝点击