「存储极客」三步完成全闪存选型
ORION是一个Oracle官方模拟数据库存储IO的测试工具。OTLP的典型负载为8KB随机读写,这里通过参数指定读/写比例为70:30。 测试结果如上表。深红色折线代表IOPS,我们看到当并发ORION任务达到14时,8KB混合读写IOPS超过250,000。 根据这个结果可以大致估算出100%读IOPS能跑多高吗?大家先看看我下面的方法是否合理: 估算方法一:在257,313IOPS中有30%的写IO,考虑到RAID 10落在SSD盘上会有写放大,那么把这些写的时间换成读操作应该能快不少,保守估计跑到40万IOPS以上问题不大。 问题1: 闪存盘读比写快,那么上面的估计是否保守了? 我的答案是yes,但具体低估了多少,除了实测之外另有一种推算方法可以考虑。 问题2: 前后端存储网络、连接会不会成为瓶颈? 按照40万8KBIOPS来计算,折合3200MB/s的带宽。具体到我们测试环境是端到端16Gb FC SAN网络,4条交换机上行链路不应成为瓶颈;后端每条SAS线缆12Gbx4lane也是如此。 问题3: 我用不了这么多个SSD,换个配置性能可以按比例缩放计算吗? 以我在《SSD寿命与闪存阵列选型(上)为什么关注DWPD?》中引用的DellSC4020SPC-1性能测试结果为例,6块SSD超过11万IOPS,平均每个接近2万了。 当然,SPC-1测试的混合工作负载数据块大小和读写比例(《存储极客:SPC-1负载分析与AFA寿命评估》中曾有详细分析)与本文的ORION有些不同,另外6块480GBSSD用的是RAID10双盘镜像,所以只是个参考对比。考虑到SC9000比SC4020要高端,其性能上限应该也会较高。 估算方法二:这个我也是看到不只一家存储厂商使用。大家知道SSD驱动器有个制造厂商的IOPS性能指标,而在阵列中的发挥会有不小的折扣。于是人们就在存储系统中测试各种单盘RAID0的性能,以此为基础来估算不同数量SSD配置能够达到的IOPS,当然如果是写性能还要考虑RAID惩罚的影响。 关于方法二我就不详细举例了,有兴趣了解的朋友可以找相关人士咨询。 性能分析收集工具 了解存储需求的助手 我在本文开头列出过一张IOPS截图,上面这个为主机上监测到访问存储的带宽,对应的具体存储配置未知。它们都是使用DPACK(Dell Performance Analysis Collection)软件收集的。 读写I/O尺寸与应用类型相关,比如OracleOLTP典型的是8KB,上面这个比较像Exchange邮件服务器。另外我还看到过有的存储厂商宣称32KB优化对实际应用的意义较大。 延时是另一个关乎应用体验的重要指标,这个与I/O请求大小有很大关系。比如上面图表大部分时间写延迟很低,应该有存储Cache的效果在里面,绝大多数I/O都在20ms以内,属于Exchange正常接受的范围。至于蓝色的波峰,不排除是有个大数据块I/O,也可能是由于持续写入压力大,缓存数据满了落盘导致。 另外需要说明的是,如果按照OracleOLTP的8KB访问习惯,平均延时通常比上面图中要低。而存储I/O与数据库事物交易延时并不是一回事,因为根据事物复杂度不同,每笔事物中包含的I/O数量也是不同的,而且还有计算的开销要考虑。因此,我们不能从应用端一看到几十ms的延时,就全都怪存储不给力。 在用户现有的应用系统中收集到上述性能数据之后,再加上我在本文中介绍的方法,存储售前顾问就可以更有针对性地推荐阵列配置。现在全闪存逐渐开始流行,而有些情况下用固态混合(SSD+HDD)分层存储也是不错的选择。如果用户看重容量和性价比,或者想保留更多的历史快照数据,能够兼容传统硬盘的阵列就显出优势了。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |