企业级应用综合负载分析
wangfei 发表于:14年07月25日 09:42 [编译] 存储在线
企业综合负载分析
我们在测试PCIe存储解决方案的性能时并不是只看传统的最大性能或稳定状态的性能。在测试长期平均性能时,你会忽略掉设备在整个时期内的运行情况背后的细节。 由于闪存的性能会随着时间的推移而发生较大的变化,我们的标准测试分析了包括总处理能力、平均延迟时间、最大延迟时间和跨越每台设备的整个预准备阶段的标准偏差等在内的各项性能。对于高端企业级产品来说,延迟时间通常比处理能力更重要。 因此,我们会尽量多地列出在我们的企业测试实验室中测试的每一款设备的全部性能参数。
我们还加入了性能对比以展示出每一款设备在Windows和Linux操作系统环境中的不同驱动器配置下的性能表现。对于Windows系统,我们在第一次测试时使用的是最新的驱动程序,让每一款设备都在64位Windows Server 2008 R2环境中进行测试。 对于Linux系统,我们使用的是64位CentOS 6.3环境,每一款企业PCIe应用加速器都支持这个环境。我们的这项测试的主要目的是体现出不同操作系统在性能上的差异,因为产品的兼容列表中可能会包括好几款操作系统,但那并不意味着产品在每一种操作系统环境下的性能表现是一样的。
在每一款存储设备的预准备阶段,闪存性能也会发生变化。存储设备的设计和容量各不相同,预准备过程持续的时间在6个小时到12个小时不等,具体取决于每一款存储设备达到稳定状态性能所需的时长。 我们的主要目的是保证每一个驱动器都能在我们开始第一项测试时完全进入稳定状态模式。总的来说,每一款可比较的设备都利用厂商提供的工具进行了安全清除,利用相同的工作负载预设到稳定状态,然后在16线程的高负载状态下进行测试,每条线程的等候队列都有16项工作负载在等候,然后在多线程/队列深度剖面中设置的间隔期中进行测试,以便对比最低使用率和最高使用率条件下的性能。
准备阶段和初级稳定状态测试中监控的属性:
处理能力(读+写IOPS总和)
平均延迟时间(读+写平均延长时间总和)
最大延迟时间(最大读延长时间或最大写延迟时间)
延迟时间标准偏差(读+写平均标准偏差总和)
我们的企业综合工作负载分析包括基于现实任务的4个剖面。定制这些剖面的目的是简化标准测试结果和公开发表的价值比如最大4K读和写速度以及8K 70/30之间的对比。 我们还加入了两种延迟时间混合工作负载,即传统的文件服务器和网络服务器,这两种负载涵盖了各种大小的数据传输需求。
4K
100%读或100%写
100%4K
8K 70/30
70%读,30%写
100%8K
文件服务器
80%读,20%写
10%512b,5%1k,5%2k,60%4k,2%8k,4%16k,4%32k,10%64k
网络服务器
100%读
22%512b,15%1K,8%2k,23%4k,15%8k,2%16k,6%32k,7%64k,1%128k,1%512k
在我们的第一项工作负载中,我们测试的是完全随机的4K写准备情况,附带16T/16Q的工作负载。在这项测试中,Fusion ioDrive 2 Duo SLC的最高性能得分最高,在与Linux驱动器搭配时它的最高性能几乎达到了550000IOPS。 在Windows环境中,最高速度稍微低一些,只有360000到420000IOPS。在接近稳定状态时,ioDrive 2 Duo在HP模式下在Linux和Windows系统中的性能得分分别为230000IOPS和200000IOPS。 在预备容量模式下,它在Linux和Windows系统下的性能大概分别为140000IOPS和115000IOPS。
在16T/16Q的重负载和准备容量模式下,Fusion ioDrive 2 Duo在Linux系统和Windows系统中的平均延迟时间分别为1.85毫秒到2.20毫秒。 在高性能配置下,它在Linux系统和Windows系统中的平均延迟时间分别下降到1.10毫秒和1.25毫秒。
利用我们的4k随机写方案比较ioDrive 2Duo在Windows系统和Linux系统中的最大延迟时间,很容易发现它在Linux系统中在最大响应时间上面表现得更优秀一些。在整个预准备期间,它在Windows系统中在库存容量模式下的最大延迟时间在40-360毫秒之间,在高性能模式下的最大延迟时间在100-250毫秒之间。 这与它在Linux系统中的表现形成了鲜明对比。因为不管是在库存容量模式还是高性能模式,它在Linux系统中的最大响应时间都在20-50毫秒之间。
?
再来看看延迟时间标准偏差,不管是在库存容量模式还是高性能模式,Fusion ioDrive 2 Duo SLC在Windows系统中的延迟时间一致性都比它在Linux系统中的延迟时间一致性要低一些。在高性能模式下将它与Micron P320h和Virident FlashMAX II进行对比,那些产品在Windows系统和Linux系统中的延迟时间一致性差不多都是一样的。
?
经过12小时的预准备期,ioDrive 2 Duo SLC在高性能模式和Linux系统中的稳定状态随机4k性能测试的最高性能为231456IOPS。这个测试结果也是所有的可比较产品在相同测试条件下得到的测试结果中最高的,它在Windows系统中的性能与Micron P320h在相同测试条件下的性能差不多。 在库存容量模式下,随机4k写速度在Windows系统和Linux系统中分别下降到114917IOPS和139421IOPS。这与FlashMAX II在高性能模式下得到的测试结果大体相同。 再来看群组4k随机读速度,Micron P320h的得分最高,它在Linux系统中的最高性能达到637000IOPS,而ioDrive 2 Duo SLC在Linux系统和Windows系统中的得分分别在460000-463000IOPS和384000-392000IOPS之间。
?
对比16T/16Q重负载、100%4k随机写情况下的平均延迟时间,ioDrive 2 Duo SLC在Windows系统下的测试结果在0.550-0.552毫秒之间,在Linux系统下的测试结果在0.649-0.663毫秒之间。在写性能方面,它在Linux系统中的高性能模式下的延迟时间在1.102-1.255毫秒之间,在Linux系统中的库存容量模式下的延迟时间在1.832-2.223毫秒之间。
?
在对比最大延迟时间时,Fusion ioDrive 2 Duo在群组最高最大响应时间上在Windows系统中表现得更优秀一些,在4k随机写操作条件下的测试结果在373000-1018000IOPS之间。 它在Linux系统中的性能测试结果相对要好一些,最高响应时间在43-51毫秒之间。在最高写延迟时间上面,ioDrive 2 Duo在Windows系统中的测试结果最好,测试所得的最大延迟时间在3.32-3.76毫秒之间。
对比在随机4k方案中的每一个PCIe AA的延迟时间标准偏差,ioDrive 2 Duo SLC在Windows系统中表现出极佳的读延迟时间一致性,但在群组中的延迟时间一致性相对要差一些。在Linux系统中,测试的结果相对要好一些,但也比其他设备在相同测试条件下的结果要差一些。 群组测试结果最好的是Micron RealSSD P320h,它可以在读和写活动中提供平衡延迟时间标准偏差。
?
随后测试的项目转向了8k 70/30混合工作负载测试,ioDrive 2 Duo SLC的最高性能最高,结果在424000-443000IOPS之间,它在Windows系统中的测试结果相对要高一些。在接近稳定状态时,ioDrive 2 Duo SLC在库存容量模式下的测试结果在140000-148000IOPS之间,在高性能模式下的测试结果在195000-200000IOPS之间。
?
对比在我们的8k 70/30工作负载下的平均延迟时间,Fusion ioDrive 2 Duo SLC在爆发情况下的延迟时间在0.57-0.59毫秒之间(略优于Windows系统环境下的表现);在库存容量模式下和高性能模式下的测试结果均有改观在库存容量和高性能模式下的测试结果分别为1.70-1.80毫秒和1.28-1.33毫秒。
?
当ioDrive 2 Duo SLC从脉冲状态转向稳定状态时,它在Windows系统和Linux系统中以及在库存容量模式和高性能模式下的最大延迟时间都在50-250毫秒之间。相比之下,Micron P320h在相同的条件下的最大延迟时间在10-30毫秒之间,Virident FlashMAX II在相同条件下的最大延迟时间在30-50毫秒之间。
虽然ioDrive 2 Duo的最大延迟时间在我们的8k 70/30预准备测试中的结果比较高,但我们注意到它在高性能模式下的延迟时间一致性仅次于Micron P320h。在库存容量模式下,它的表现比Virident FlashMAX II更好。
对比固定16线程、16队列最大工作负载时,我们进行了100%4k写数据测试,我们的混合工作负载测试方案可以随意调整使用各种线程/队列的组合。在这些测试中,我们的工作负载强度从2线程和2队列一直增加到16线程和16队列。 在扩展8k 70/30测试中,Fusion ioDrive 2 Duo SLC在高性能模式下的最高性能上的得分是这些产品之中最高的。将它与Micron P320h进行直接对比,它可以在2线程、4线程、8线程和16线程条件下提供相对更高的低队列深度性能,但是随着队列长度的增加,它又落到了其他产品的后面。 在库存准备模式下,它在高性能模式下的性能几乎与Virident FlashMAX II的性能差不多。
在8k 70/30测试的调整平均延迟时间测试项目中,我们发现Fusion ioDrive 2 Duo SLC的平均延迟时间是所有的产品中最低的,这与它在短队列情况下的强劲性能有一定的关系。随着队列长度的增加,Micron P320h成为领先的产品,而到了16T/16Q的测试里,ioDrive 2 Duo SLC会再次领先。
我们在调整8k 70/30测试中对比最大延迟时间时,我们记录了ioDrive 2 Duo SLC的一些最大的数据,它的最大延迟时间似乎会随着有效队列长度的增加而增加。在库存容量模式和Windows系统中,这一点表现得最为明显。 在高性能模式下,不管是Linux系统还是Windows系统,它在有效负载小于或等于QD64的情况下的最大延迟时间都保持在70毫秒以内,而当有效负载增加到QD128和QD256时,最大延迟时间会分别增加到160毫秒和220毫秒。
在我们的调整8k 70/30测试中,Micron P320h在任何工作负载下的延迟时间最稳定,Virident FlashMAX II排在第二位,ioDrive 2 Duo SLC在高性能模式下的延迟时间一致性紧随在它们的后面。
?
?
文件服务器工作负载代表着每一台设备上传输的数据量都会更大,因此这款驱动器需要处理的是从512b到64k的数据,而不是静态4k或8k工作负载。在这样的工作负载下,由于Fusion ioDrive 2 Duo SLC必须开始处理更大数量的数据,它在某些方面会比其他设备表现得更好,而且在高性能模式下的性能是最强的。 在爆发时,ioDrive 2 Duo SLC的处理能力几乎达到了Micron P320h和Virident FlashMAX II的两倍,检测到的结果为305000IOPS。在高性能模式下接近稳定状态时,它在Windows系统和Linux系统中的检测结果都在136000IOPS附近,而P320h的检测结果为125000IOPS。 在库存容量模式下,它的处理能力在110000IOPS左右,而Virident FlashMAX II在高性能模式下的处理能力在70000IOPS左右。
?
?
?
?
借助于其强大的爆发性能,ioDrive 2 Duo SLC在预准备阶段刚开始的时候的平均延迟时间大约为0.83毫秒,之后再慢慢变好,在高性能模式下会稳定在1.87毫秒,在库存容量模式下会稳定在2.25毫秒。
?
?
?
?
?
当ioDrive 2 Duo SLC从爆发状态转为可持续和稳定状态时,最大延迟时间会象它在我们的8k 70/30测试中表现得那样一开始很高,但没有8k 70/30测试中那么高。通程检测下来,我们得到ioDrive 2 Duo在各种模式下的最大延迟时间在20毫秒到200毫秒之间,其中在Linux系统和高性能模式下的表现最好。 我们注意到,ioDrive 2 Duo在Windows系统和高性能模式下的最大延迟时间超过了1000毫秒。相反,Micron P320h不管是在Windows系统还是在Linux系统中,它的最大延迟时间一直保持在20毫秒以内。
?
?
?
虽然我们注意到ioDrive 2 Duo在我们之前的测试中的最大延迟时间比另外两款产品都要长,但在延迟时间标准偏差上,它的表现介于Micron P320h和Virident FlashMAX II之间。总的来说,不管是在库存容量模式还是高性能模式下,这些设备在Linux系统中运行时的延迟时间一致性要好一些,其中在高性能模式下它们的延迟时间相对更稳定。
?
?
文件服务器准备阶段完成了常规16T/16Q负载之后,我们进行了最主要的测试,即在2T/2Q和16T/16Q之间的各个负载水平上测试它们的性能。在我们的主要文件服务器工作负载中,ioDrive 2 Duo SLC的最大性能最高,在16T/16Q负载下的性能在132000-135000IOPS之间,而P320h在相同负载条件下的性能在125500IOPS左右。 在队列长度较短的情况下,ioDrive 2 Duo也表现出了它相对于Micron P320h的优势,在2、4、8线程工作负载条件下,它在高性能模式下的表现略微胜过了P320h。随着队列长度增加,Micron P320h在各个工作负载级上都处于领先。
对比每一款最顶级PCIe应用加速器在我们的文件服务器工作负载下的平均延迟时间时,ioDrive 2 Duo SLC在群组中的延迟时间最短,在2T/2Q负载、高性能模式条件下,不管是Linux系统还是Windows系统中,检测到的结果都是0.14毫秒。随着工作负载增加,Micron P320h一路保持领先,直到在16T/16Q的最大负载条件下,ioDrive 2 Duo SLC才重新在平均延迟时间上胜过了它。
?
在文件服务器测试中对比最大响应时间时,Fusion ioDrive 2 Duo SLC在最大延迟时间相对更高一些,在这个测试条件下,工作负载的有效队列长度一开始就处于或超过了128个。ioDrive 2 Duo的最大延迟时间在11-100毫秒之间,其中在高性能模式下的表现更优一些。
?
随后我们在文件服务器测试中将目光从最大响应时间转向延迟时间一致性,ioDrive 2 Duo SLC在这个测试项目上落在了Micron P320h的后面,仅仅在库存容量模式下在延迟时间标准偏差上面略微胜过了Virident FlashMAX II。
?
?
在最后的综合负载测试中,包括了一项网络服务器测试项目,也就是100%读数据测试,我们在进行主要测试前对每台设备进行了100%写入操作以实现预准备。在这个受压预准备测试中,ioDrive 2 Duo SLC给我们留下了深刻的印象,不管是在库存容量模式还是高性能模式下,它的表现都远远超过了Micron P320h和Virident FlashMAX II。 在这项测试中,在高性能模式下,ioDrive 2 Duo SLC的最高速度超过了145000IOPS,而Micron P320h的最高速度只有67000IOPS,Virident FlashMAX II的最高速度只有32000IOPS。
?
?
在我们的网络服务器预准备阶段测试中,在16T/16Q的重度100%写工作负载情况下,ioDrive 2在高性能模式下的平均响应时间保持在3.5-3.8毫秒左右,在库存容量模式下的平均响应时间保持在6.4-7.2毫秒之间。
在我们的网络服务器预准备阶段测试中,在最大延迟时间项目的对比上,ioDrive 2 Duo SLC在Linux系统中不管是库存容量模式还是高性能模式,它的结果都在25-70毫秒之间,在Windows系统中,它的最大延迟时间在25-380毫秒之间,其中有两个数值超过了1000毫秒。
?
在我们的压力网络服务器预准备测试中,对比延迟时间一致性这一项目,Micron P320h处于领先的位置,ioDrive 2 Duo SLC排在第二位。在高性能模式下,它在Windows系统和Linux系统中的表现都比库存容量模式下的表现更强一些。
下面转到100%读数据的网络服务器测试的最主要的项目,ioDrive 2 Duo SLC在2T/2Q负载下的性能在23000-25500IOPS之间,在16T/16Q负载下的性能在141000-147000IOPS之间。与Micron P320h相比,ioDrive 2 Duo不管在短队列还是长队列情况下都无法在性能上与它相比,在有效队列长度低于QD32时,它还比不上Virident FlashMAX II,但是超过那个队列长度后,它的性能就超过了Virident FlashMAX II。
在2T/2Q负载下,Fusion ioDrive 2 Duo SLC的平均延迟时间在0.153-0.163毫秒之间,在16T/16Q负载下,它的平均延迟时间上升到1.737-1.803毫秒之间。在整个测试中,Micron P320h的平均延迟时间都是3款产品中最低的,而Virident FlashMAX II只有在队列长度低于QD32的时候才能略胜ioDrive 2 Duo SLC,队列长度超过QD32,它就只能垫底了。
在我们的100%读数据网络服务器测试中,我们注意到虽然ioDrive 2 Duo SLC在有效队列长度不超过256时的最大延迟时间大多数在20毫秒以内,但是少数一些最高的数值却达到了130毫秒。在16T/16Q的最大负载测试条件下,ioDrive 2 Duo SLC的最大延迟时间在164-320毫秒之间,其中在Windows系统中和库存容量模式下测试所得的结果最高。
在100%读数据网络服务器测试中对比这3款设备的延迟时间标准偏差时,Micron P320h仍然处于遥遥领先的地位,ioDrive 2 Duo SLC紧随其后,只有在有效队列长度比较短的时候才跟Virident FlashMAX II相当。