原标题:鲜为人知的Exadata存储性能秘密

作者介绍

石云华,现就职于北京海天起点,Oracle技术二线专家成员,Exadata部门负责人。拥有十余年电信、保险、税务行业核心系统Oracle数据库运维经验,持有11gOCM、Exadata、Goldengate等证书。 擅长于Oracle/Goldengate/Exadata方面的故障诊断及疑难问题处理。

案例概述

一个X3-2 的Exadata临时客户,Oracle原厂工程师在进行onecommand初始化的过程中,执行到第6步,calibrate检测存储节点磁盘性能时报错,后续工作无法继续。而由于一些商务上的原因,原厂的硬件工程师无法提供技术支持。

客户最终找到了我们,希望我们能帮着一起分析分析,存储节点磁盘的性能是否存在问题。在问题转给我之前,客户自己也做了大量的换盘和测试工作。目前存储节点使用calibrate检测的结果正常,但插槽0 或 插槽1 的MBPS偶尔比其它的磁盘低十几MB左右,但还是在可以接受的范围之内。

目前,客户主要有两个疑问,需要我进行解释:

测试过程中以前一些表现比较差的磁盘,为什么将这类磁盘更换到其它的存储节点后再次测试,性能又能恢复正常?

现在的插槽 0 或 插槽 1 的磁盘MBPS偶尔比其它的磁盘低十几MB左右,是否正常?

问题分析

在分析问题之前,我让客户提供了这段时间内的测试记录,同时让客户收集了相应的一些信息。

以上信息是onecommand过程中报的错误,从错误日志可以看出,在调用CALIBRATE命令检测所有存储节点磁盘性能时,出现了错误。

以上信息是sundiag收集的日志,可以看出,存储节点cell01在访问/dev/sdq这块盘的时候出现了Medium Error。

以上图片是客户在测试过程中的截图,可以看出,MBPS为0,类似这种磁盘,需要直接更换掉。在问题转到我们这里之前,客户也已经将这种磁盘全部更换掉。注意:客户更换的是SEAGATE ST360057SSUN600G 磁盘。而恰恰是这种磁盘,给后续的测试带来了性能问题。也即客户的问题1:为什么测试过程中以前一些表现比较差的磁盘,为什么将这类磁盘更换到其它的存储节点后再次测试,性能又能恢复原样?

客户的测试过程

11月28日晚上20:25:30开始,客户从操作系统层面直接调用CALIBRATE命令进行测试,循环执行55次。如下图,是客户截取的测试结果。

从上图可以看出,有部分磁盘的性能还是比较差的。由于这个案例是事后分析,当时的一些日志信息已经不完整,但还好CELL02节点的插槽5这块盘的日志保存完整,以下主要针对CELL02节点的插槽5这块盘进行分析:

以上信息可以看出,插槽5这块盘是2016-11-25 13:28:34刚刚更换后的SEAGATE的SAS硬盘。

以上信息可以看出,在2016-11-28 20:40:22时,对CEll02存储节点的磁盘做性能测试时,发现插槽5上的磁盘性能比较低。

11月29日,客户根据28日的检测结果,对一些性能偏低的硬盘进行更换,例如:将Cell07存储节点上插槽7(没有测出性能问题日立原盘)的磁盘 与Cell02存储节点上插槽5(出现性能问题的希捷硬盘)的磁盘进行互换。

更换后测试结果如下图:

我们仍然关注Cell02的 插槽5(),发现它换到Cell07的插槽7后,Cell07没有出现性能问题了。同理,Cell07的 插槽7(日立硬盘)更换到Cell02的 插槽5后,Cell02也没有出现性能问题。

问题1的原因

通过客户的以上测试过程来分析,我们基本可以得出结论,针对Cell02的插槽5的这块希捷硬盘,这块硬盘本身是没有问题的,但在某种情况下,会引发性能问题。但是什么的条件会引发硬盘的性能低下呢?同样,满足什么样的条件,进入性能低下的硬盘又能恢复原有的性能呢?

以上的日志是事后进行分析时,让客户抓取的信息,让客户抓取Cell02存储节点的温度历史信息。可以看到,由于是事后分析,只能看到2016-11-28 至2016-12-05 这部分的数据,对温度历史信息进行过滤,我们可以看到,Cell02存储节点在2016-11-28 20点12分 和 20点17分 这两个时间点的温度只有19度, 而客户进行性能测试的时间点为20:25:30开始。

以上是Cell02存储节点的操作系统重启信息,可以看出,11-23 至 12-2 之间,操作系统是未重启过的。

同样,让客户抓取Cell07存储节点的温度历史信息进行分析:

以上的日志是Cell07存储节点的温度历史信息。可以看到2016-11-28 至2016-12-05 这部分的数据,对温度历史信息进行过滤,我们可以看到,Cell07未出现过温度低于20度的情况。

以上是Cell07存储节点的操作系统重启信息,可以看出,11-23 至 12-2 之间,操作系统是重启过多次的。

下面,我来归纳下客户所做的性能测试:

Cell02存储节点在2016-11-28 20点17分时,温度低下20摄氏度,并且操作系统未重启过,同时未出现连续30分钟以上的24度高温,客户在20点25分,开始做性能测试,此时的希捷SAS盘性能表现比较差;接着,在11-29日,这块希捷SAS磁盘换到了Cell07,由于Cell07从未出现过低于20摄氏度的情况,并且操作系统于11-28 18:17重启过,所以这块希捷SAS在CELL07上又表现良好。

结合Cell02与Cell07的历史温度信息和操作系统重启情况,正好验证了Exadata上SAS盘的一个小秘密:

Exadata上的希捷SAS硬盘,当温度低于20摄氏度时,性能会出现下降,并且这种性能下降的现象一直存在。有两种情况才能让这种希捷SAS硬盘恢复原有的性能:

希捷SAS的温度必须连续30分钟以上保持在24摄氏度。

希捷SAS的温度在20摄氏度以上,并重启操作系统。

问题2的原因

对于问题1,前面已经进行了完整的阐述,下面来看看问题2:现在的插槽 0 或 插槽 1 的MBPS偶尔比其它的磁盘低十几MB左右,是否正常?

1、批量运行CALIBRATE命令对所有存储节点硬盘整体测试

测试结果如下图:

从以上测试结果可以看出:插槽0和插槽1的磁盘性能下降问题是偶尔出现,同时也只是提示信息,且CALIBRATE测试结果在ORACLE的接受范围之内, 并不像以前直接报ERROR错误。

2、批量运行CALIBRATE命令单独对插槽0和插槽1硬盘进行性能测试

测试结果如下图:

从以上测试结果可以看出:单独对所有存储节点的插槽0和插槽1硬盘进行性能测试,没有发现性能降低情况,说明硬盘没有问题。

3、通过hdparm工具对插槽0和插槽1硬盘以及其他硬盘进行性能测试

其实,在诊断Exadata上的磁盘是否出现性能问题时,可以使用hdparm工具来进行分析,其中对每个盘单独测试5次,对Timing buffered disk reads取其平均值后,进行比对。

以下,还是拿cell02来进行测试。

存储节点二插槽0 盘测试结果:

平均值为:(177.06+178.58+175.69+178.64+177.31)/5=177.456 MB/sec

存储节点二插槽1 盘测试结果:

平均值为:(189.09+176.97+174.36+173.54+176.77)/5=178.146 MB/sec

存储节点二其他盘测试结果

平均值为:(189.25+189.66+189.72+189.80+189.53)/5=189.592 MB/sec

以上测试可以看出,插槽 0 和 插槽1 上的磁盘性能与其它盘基本一致,无太大差别,但比其它盘还是要低一些。这是由于Exadata上的插槽0和 插槽1上安装了操作系统,必然会消耗部分性能。

后续思考

至此,客户提出的两个问题,基本上已经进行了解答。

在处理这个案例的过程中,客户也透露了一个信息,在3年前,他们刚买这台X3-2时,Oracle原厂曾经一次性将7台存储节点的84块硬盘全部换过,理由是这批硬盘有性能问题,更换前是什么硬盘我不得而知,但更换后的是日立的硬盘。我猜测更换前,应该是希捷硬盘,因为Exadata以前的版本一直用希捷硬盘,后来发现了温度引发硬盘性能低下这个问题后,基本上就放弃了希捷硬盘,而改用日立硬盘,而日立硬盘是不是就不存在这种温度影响性能的问题呢,其实也是存在的,只不过触发的条件更加极限,只有当温度低于15摄氏度时,才会引发性能问题。

那以后,Exadata会不会永远放弃希捷硬盘呢,这个也不好说,低于20摄氏度触发性能低下,这个特性是希捷特意设计的,不能简单称之为BUG,Oracle硬件部门目前与希捷也在共同合作,希望在以后的firmware中进行修正这个问题。

精选专题(官网:dbaplus.cn)

◆近期热文 ◆

◆MVP专栏 ◆

丨丨丨丨

责任编辑:

oracle 存储 秘密,鲜为人知的Exadata存储性能秘密相关推荐

  1. Oracle Bitmap 索引结构、如何存储及其优势

    http://docs.oracle.com/cd/B28359_01/server.111/b28318/schema.htm#i7495 本文内容 针对数据仓库应用程序的好处(Data Wareh ...

  2. 为什么列存储能够大幅度提高数据的查询性能?

    传统的存储数据的方式是逐行存储(Row Store),每一个Page存储多行数据,而列存储(Column Store)把数据表中的每一列单独存储在Page集合中,这意味着,Page集合中存储的是某一列 ...

  3. Oracle 11g RAC安装--基于openfiler存储+多路径+udev方式

    Oracle 11g RAC安装--基于openfiler存储+多路径+udev方式 RAC安装部分视频(温馨提示:播放地址复制到浏览器可看超清版或下载原视频文件,云盘下载地址:https://sha ...

  4. Oracle 11g使用透明数据加密保护存储数据

    Oracle 11g使用透明数据加密保护存储数据 透明数据加密 (TDE) 使您能够加密存储在表和表空间中的敏感数据,例如信用卡号.对于有权访问数据的数据库用户或应用程序,加密数据将被透明地解密.TD ...

  5. mysql 5.7 存储引擎_mysql5.7——innodb存储引擎总结

    一.innodb初探: 1.MySQL日志文件: ①:slow.log 文件会记录慢查询日志,当一条语句执行时间超过在配置参数long_query_time中指定的值时,这条语句就会被记录在这个文件中 ...

  6. mysql存储引擎 索引优化_MySQL存储引擎,索引及基本优化策略

    存储引擎 与Oracle, SQL Server这些数据库不同,MySQL提供了多种存储引擎.什么是存储引擎?存储引擎其实就是一套对于数据如何存储,查询,更新,建立索引等接口的实现.不同存储引擎特性有 ...

  7. mysql存储引擎静态表_MySQL存储引擎(表类型)的选择

    一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...

  8. 混合云存储组合拳:基于云存储网关与混合云备份的OSS数据备份方案

    前言 阿里云对象存储(OSS)用户众多.很多用户因为业务或者合规性需求,需要对OSS内的数据做备份,无论是线上备份,还是线下备份.用户可以选择使用OSS的开放API,按照业务需求,做数据的备份,也可以 ...

  9. 手机存储sqlite还是mysql_手机存储 和sd 路径

    Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数 ...

  10. mysql存储引擎简书_MySQL存储引擎详解

    一,基础 1,插件式存储引擎,允许第三方组织,根据其api来设计,很多功能需要依赖引擎支持,比如事务 2, 5.5以后默认为innodb,之前为myISAM,innodb支持事务,myISAM不支持 ...

最新文章

  1. SuMa++: LiDAR-based Semantic SLAM
  2. 【ThinkPHP3.2.3】学习ThinkPHP笔记:框架中的配置文件(3)
  3. pcie ep 应该支持哪种interrupt_7寸国产笔记本评测,酷睿处理器+8G+256G,还支持手写笔...
  4. aspectj 注解
  5. 入门 | egg.js 入门之egg-jwt
  6. 如何取消选中单选按钮?
  7. Mac系统如何使用文件标记功能?
  8. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_2 响应之返回值是String类型...
  9. 阿里云张建锋:云网端深度融合的技术体系正在形成
  10. Java final关键字详解
  11. Linux安装docker-ce教程 centos依赖包安装
  12. 使用ArcGIS软件对 .jpg 图片添加经纬网及地理配准失败的原因
  13. 华为5大设计师讲述HarmonyOS UX设计背后的故事
  14. 基于MK802 MiniPC的扩展开发应用-软/硬件修改和扩展
  15. 计算机中丢失msvcr100.dll怎么办,Win7计算机中Msvcr100.dll丢失的解决方法
  16. 数字图像处理,中值滤波和均值滤波及其改进算法的C++实现
  17. qq修改群名服务器失败,qq建群失败什么原因 q群一直创建失败 - 云骑士一键重装系统...
  18. 互联网运营之道读书笔记
  19. 巴西龟饲养日志----半年捉鱼经验总结
  20. python动物重量排序详解

热门文章

  1. Android studio app登录界面设计
  2. Vue小说阅读器(仿追书神器)
  3. 日志易使用系列三:仪表盘的创建与使用
  4. 阿里巴巴矢量图库的引用以及更新
  5. 【英语阅读】纽约时报 | 抖音式“无意义”短视频能征服全球吗?
  6. python爬网易新闻_爬虫入门:如何用python爬取网易新闻?
  7. css城市列表,js 获取全国城市列表方法
  8. 如何把Tomcat 9 的默认8080端口变成80端口
  9. Python-URL编码和URL解码方法
  10. 微信小程序地图开发电子围栏与后端联调