闪存厂商的性能测试参数含金量有多高?
2014-05-08 TechTarget中国 编辑:Michael Zhang
现在在闪存市场上见到100万的IOPS已经不足为奇,这些资料可能来自全闪存阵列厂商、PCIe固态盘厂商,甚至也可能来自混合厂商。为了一探究竟,我们公司Storage Switzerland间或参与了其中一些测试工作。
能达到100万个IOPS的数值结果听起来的确非常让人印象深刻,但这个数值对业务本身的意义在哪儿?或者仅仅是做到了一个较高的数值?要知道,测试本身可以针对任何一家厂商的产品进行调整以测到最好数值。测试结果固然重要,但相对来说,测试方法则更为有意义。好在有些数据可以推测出来,并且适用于你的业务环境。
测试的有效性
没有一个测试环境可以声称自己能完美模拟生产环境。测试中很关键的一个部分是不仅需要关注厂商声称的高性能指标,同样要看在不那么好的测试环境下是否也可以达到这样的一些指标值。
比如说,在一套混搭的环境下,系统里既有SSD固态盘也有传统的HDD硬盘,那么要模拟”缓存不中”的场景就不是很容易,即在SSD里没有相应的数据,需要去HDD里面找回来。因此,在大多数测试用例里,就不会涵盖模拟缓存不中的测试环节。
通常的做法是,一些混合闪存厂商会采取其它的一些极致的方式来产生一些测试结果,而很难去模拟真实世界里的数据中心。带来的结果是,对于最终使用者来说,他们也需要意识到前端闪存池后端磁盘池的性能也同等重要,因为这样才能保障整体性能的可持续性。
相关指标
如果一个特定的指标参数是来自于闪存盘和传统磁盘的组合,那么可能要考虑了解一下相关的配置。比如说,在传统磁盘的选项上选择了转速较高的盘来得到较高的结果,那么对于一些初期的使用者来说,也许他们就需要提前了解这样的信息。
为了降低或者减少后端磁盘的延时响应,一些厂商使用了混合阵列措施,即将闪存盘和传统磁盘混搭起来。挑战的一方面来自于闪存盘和传统磁盘的性能差异本身就很大。同等工作负载情况下,闪存盘能响应的效率将远大于传统磁盘的响应效率。那么问题是厂商的基准测试结果表现了这方面的差异或者还仅仅是基本场景。换句话说,如果所有的盘都是闪存盘,测试的结果又会有何不同?
官方的建议通常是可以看闪存和传统磁盘的平均I/O处理性能。这样做将是极有误导性的,尤其是当混合阵列的配置中的缓存极小且后端磁盘转速在7500 RPM左右的时候。因此,对于混合阵列如何产生的标称数值是非常重要的。在真实世界讨论闪存性能的时候不建议看标称值。
确保在采购前仔细查看全闪阵列厂商声称的性能指标。闪存阵列产品中包含了SLC闪存模块以及MLC闪存模块,前者的性价比更高,或者是包括了两者的混合体。
就像前面讨论的混合阵列,去了解全闪阵列厂商如何做到其标称值是十分重要的。需要确保标称的指标产生背景和现实生产的场景类似,才去做购买的决定。换句话说,不要仅因为MLC闪存阵列测试数值高就一味去购买,而是去更多的应该分析现实的需求。
关注负载
另外一块需要仔细了解的地方就是混合读写操作时候,尤其是在闪存存储上的读写混合操作的表现。除非现实的需求就是100%读操作,否则100%的顺序读的指标值意义并不大。同样的道理,100%写操作的负载也是不显示的。简而言之,最好是能参考读写混合操作下的指标。
另外一方面用户也值得仔细了解一下性能负载是如何产生的。是数据库压力测试?还是模拟用户桌面活动?或者还是使用了命令行的I/O产生工具?并不是说这些方法不好,但他们的确各有不同。
尽管工作负载相关的数据库压力测试或者虚拟桌面模拟测试比较流行,然而这些测试案例用在闪存阵列上的时候还是会遇到一些问题。事实是闪存本身响应就比较快,甚至一些时候它自身的测试方法就有问题。不管是命令行测试工具还是应用模拟方式都会遇到问题,因此两者都不是尽善尽美的。
基准测试不能替代好的设计
好的消息是,不管是混合存储还是全闪阵列,只要能正确补充存储,终端用户都会获得足够高的IOPS尽管后端磁盘性能可能不够而造成缓存不中等。因此,需要充分发挥每个存储层级的性能以补偿缺陷。
特别是遇到混合存储的时候,需要考虑的一点即是性能上的短板效应。正因为如此,无需快速访问的数据应该放在相对稳定一些的后端磁盘上。比如说在一些时候,后端如果使用了15000转速的磁盘,即便前端缓存大小适中也妨碍不大。
替代的方法是,如果后端传统磁盘层包含了一些高容量的磁盘,那么前端的闪存层则需要提高其比例。从较新的存储厂商的说法得知,如果100%的活跃数据都能放置在闪存层,那么数据击中比率则能达到90%以上。
如果这样的话全闪存阵列则更为容易去衡量及评估因为不再需要考虑多级存储之间的关系。在这种情况下,需要了解SLC及MLC两种闪存之间的区别。虽然MLC较SLC慢,需要知道的是即便如此,其比传统硬盘还是会快很多。在许多场景下,MLC也许就足以满足加速的需求。
最好的能同时享用两种功能的方法就是采取混搭的方式。一些厂商介绍了混合的MCL/SLC的方式。这种方式看起来和闪存及传统硬盘混合的方式类似,但是如果能较好的搭配使用,两种闪存类型可以极好的进行优势互补。在阵列里补充少量的SLC模块就可以满足大多数I/O需求,例如写操作及频繁的读操作,这些混搭一些MLC模块就好。
底线情况是,对于IT来说,这些都是预期性能。现实中不同场景带来的巨大差异也是非常常见的,因此需要对最坏情况也能有预期并相应的做好存储解决方案的架构设计。
结论
厂商存储基准测试可以给用户一个厂商角度的详细汇报了解。大多数测试结果均为了表现特定平台下的极致性能,大多数测试里面都不会涉及如果在同等压力的情况下,后端存储改变后性能的变化,例如SLC换成了MLC,甚至闪存换成了传统磁盘。厂商的基准测试可以增加价值,但是仅可作为整体决策流程的一部分参考。