服务器产业掀热潮,效能成关键指标 随着云端相关技术的成熟,业界对于服务器架设的需求也逐年提升。除了需求数量提升,相对应的服务器效能需求也随之增加。若服务器的效能没有达到一定水平,使用者便会明显感受到一定程度的不顺畅。举例来说:一般用户在使用在线服务,如网络订票或者浏览影音等,若服务器因负载过大而效能较差的话,使用者便会感受到不顺畅的网络体验,甚至无法顺利完成服务。 评估一台服务器的效能,主要有几个效能指针组件:中央处理器、内存、储存装置、网络卡等。 影响服务器效能的关键:除了中央处理器、内存之外,储存装置也占了非常重要的部份,例如操作系统运行、资料读写存取,若储存装置速度慢,便会整体拖累服务器运转效能。 为了提升服务器处理资料的效能,现今主流服务器已普遍搭载SSD,服务器厂商对于SSD如何挑选,除了价格以外,SSD本身的效能便是另一个重点。SSD效能评测,一般常见的IOmeter、FIO、CrystalDiskMark,可以快速的了解该SSD效能水平,但对于服务器环境下,长时间高频率使用性质,这类评测工具往往只能了解到表面,无法更深入了解SSD在服务器环境下实际表现为何。 针对SSD效能评估,SNIA( Storage Networking Industry Association) 提供了完整效能评估指引。顾名思义,该协会为提供网络相关制造行业所需的技术规范为主,协会制订的相关规范广泛,其中关于SSD效能评估相关规范为” Solid State Storage (SSS)Performance Test Specification (PTS) ”,这项测试规范可以让制造商与客户,在评估挑选SSD储存装置效能时有所依据。虽然本规范中定义的测试规范可以应用于基于任何技术制造(RAM,NAND等)之SSD装置,但本规范尤其在预处理(Preconditioning)和稳定状态方面(Steady State)的重点是面向NAND相关产品。 现今主流的NAND-base SSD存取资料方式,是基于NAND-base的SSD控制器将逻辑地址(LBA)映像到NAND媒体上的物理实体NAND层地址(PBA),并透过算法管理,以实现最佳的NAND性能以及其寿命。SSD通过独立于主机的SSD控制器来管理这种LBA-to-PBA映射。这些运作的总和被称为闪存管理(flash management)。下图显示了SSD效能变化趋势,对于SNIA PTS测试概念至关重要。一般情况下,刚从包装盒中拿出来的全新SSD(FOB),在经历短暂的高性能期后,会随着时间增加读写量后,效能下降进入转换阶段(Transition),最后效能逐渐稳定,转入稳定状态(Steady State)的表现。SNIA PTS目标在确保效能测量在稳定状态区域进行,以代表设备在一般正常工作期间的效能。下图也能理解到,虽然不同SSD效能表现不同,但整体趋势可以看出FOB效能最好,随着时间持续存取,SSD会进入一个效能较低,但稳定(Steady State)的状态。 接着,来了解SNIA PTS五项重点测试概念: 1.稳定状态(Steady State) SNIA PTS效能测试的重点在于 稳定状态 下的效能测试。为何需要搜集稳定状态下的效能数据,协会这边提到两个主因: Ⅰ.确保不会将SSD的初始性能(FOB或Purged)视为“典型数据结果”,因为这对SSD来说为暂时效能表现,不能反映SSD在其多数运行时间下的性能表现情形。 Ⅱ.让测试执行者能够观察其趋势,如,围绕在平均值附近的波动在某种意义上是“稳定”的,但背后可能有其他原因(NAND质量,快取等等)导致其波动较大。 2.清除(Purge) 为了确保每次测试结果的一致性,在每次预处理和测试开始前,必须对SSD进行清除操作,以抹除SSD上所有信息,让SSD回到FOB状态。若被测物SSD不支持任何清除方法,则必须在报告中记载未执行清除动作。 3.预处理(Pre-conditioning) 预处理的目的在于促进测试过程收敛达到稳定状态,SNIA PTS定义了两种类型的预处理条件: Ⅰ.无测试脚本预处理(Workload Independent Pre-conditioning) Ⅱ.测试脚本相依预处理(Workload Dependent Pre-conditioning) 简单来说,无测试脚本预处理使用独立于测试脚本以外的方式进行预处理,而测试脚本相依预处理则是使用测试脚本。虽然基于测试脚本的预处理不是测试流程中的独立步骤(它发生在每个测试的核心测试循环中),但它对于获得有效的稳定状态结果至关重要。 4.可运作范围(Active Range) 在不同测试条件下,SNIA PTS定义了不同的LBA寻址空间,如下图所示,可以看到左边为全部100% LBA,右边为75% LBA空间。 5.PTS测试流程 SNIA PTS测试流程相同(IOPS、Throughput和Latency),至于其他特定测试流程规范已列于该章节中,这边先不作讨论,测试流程如下: ⑴Purge the device: 清除SSD上面所有资料。 ⑵Run Workload Independent Pre-conditioning: 执行无测试脚本预处理(Workload Independent Pre-conditioning )的动作。一般使用128K SEQ Write 对SSD进行两倍容量写入。 ⑶Run Test (includes Workload Based Pre-conditioning): 测试本体,按照测试脚本中指定的设置测试参数(OIO/Thread、Thread Count、Data Pattern等),设置完成后,执行测试循环,直到达到Steady State或最多25次循环。根据测试的要求,累积/记录每次循环中间执行过程数据。 ⑷Post process & plot the Rounds data: 测试结果处理与绘制循环资料。这边会有两种情况: a.在25次循环内成功完成测试,假设第X次完成测试,表示该SSD已进入稳定状态,向前推5次(X-4)的这段区间即为量测区间。 b.在25次循环中未能进入稳定状态,则可以选择再次回到步骤3重新执行循环,或者直接用第25次当作稳定状趟。 本篇就SNIA PTS测试概念以及流程带读者导览其中重点内容,从中也可清楚了解到SNIA PTS测试对于server SSD benchmark的重要性,有别于一般测试软件,SNIA PTS更是透过一定时间读写压力,让SSD效能真实呈现。若要评估一颗SSD效能好坏,除了测出该SSD最大效能外,稳定状态下的效能表现我想更具指标意义。