APP下载

运营商业务系统数据模型及SSD性能评估技术

2020-06-08吴家隐李先绪

移动通信 2020年5期
关键词:数据模型

吴家隐 李先绪

【摘  要】5G时代带来了海量的数据存储需求,硬盘的IO(Input/Output)性能可能构成其主要瓶颈。从运营商核心系统的性能报告出发,根据业务系统的特点提取数据模型,并以PCIe SSD为例,构建了固态硬盘性能评估方案,从而得出贴近生产环境、具有实际指导意义的SSD性能参数,为IT系统设计和优化提供依据,保障核心业务系统的部署。

【关键词】数据模型;固态硬盘;性能评估

The 5G era has brought the requirements of massive data storage and thus the IO (Input/Output) performance of the hard disk might become the main bottleneck. Starting from the performance report of the operator's core system, the data model is extracted according to the characteristics of service systems. Taking PCIe SSD as an example, this paper constructs the performance evaluation solution of the solid-state drive, and thus obtains the SSD performance parameters which are close to the production environment and have practical guiding significance. This paper provides the basis for the design and optimization of the IT system and ensures the deployment of the core business system

data model, solid-state drives, performance evaluation

0   引言

随着5G时代的来临,人工智能[1]、物联网[2]、低延时高可靠应用[3]以及大规模电子商务计算等业务将得到快速发展,从而带来了海量数据存储与处理需求。数据的飞速增长,对存储设备的性能要求越来越高,传统的机械硬盘已经难以达到性能要求。

固态硬盘(SSD, Solid State Drive)的出现,使单硬盘的性能提高了几个数量级,大大改善了CPU和IO的性能差距。随着半导体工艺的发展,尤其是3D NAND工艺的成熟[4],固态硬盘使用成本大幅度下降。早期的SSD采用SATA(串行ATA, Serial ATA)接口,在使用时,需要将数据从SATA SSD中读取到主机内存,再由内存提供给CPU计算使用。在CPU计算完成后,数据又要经过内存再写入SSD中,数据传输路径较长。SATA/SAS接口协议是为传统HDD而设计,不适合低延时的SSD,已经成为影响SSD硬盘的性能瓶颈。PCIe SSD可以直接通过总线与CPU相连,节省了内存调用的过程。同时,PCEe SSD还可以结合为SSD重新设计的NVMe传输协议[5],有利于发挥SSD的性能优势。因此,PCIe SSD拥有更高的带宽和更高效的传输协议,在企业级市场中的市场份额日益增长。PCIe SSD的提供商包括英特尔(Intel)、昱科(HGST)、宝存(Shannon)、华为、忆恒创源(Memblaze)等多个品牌[6],性能各异。

在运营商的5G建设过程,业务系统要面对高并发、大性能的需求,对于存储的性能要求非常高。因此,在业务系统的规划、建设及优化阶段,就必须充分考虑到存储乃至硬盘的性能对业务系统的影响,这就需要对硬盘进行详尽的性能评估。传统的硬盘性能评估工具包括iometer[7-8]、FIO[9-10]等,但如果不充分考虑业务系统的实际情况进行科学合理的方案设计,直接通过这些评测工具进行测试,所得到的测试结果往往与业务系统的实际情况相差甚远,从而影响到了业务系统规划的准确性。因此,亟需研究运营商业务系统的数据模型,并针对运营商业务系统的实际情况制定科学、合理的SSD性能评估方案,从而能够得到对生产具有指导意义的SSD性能参数,为IT系统设计和优化提供依据。

1    数据模型

1.1  性能指标

数据库是运营商业务系统的核心系统,其处理能力对业务系统是否能够应对高并发访问起到至关重要的作用。一旦数据库遇到访问峰值,承载数据库的硬盘的IO可能成为系统的主要瓶颈。SSD的性能指标主要包括:

(1)IOPS

IOPS(Input/Output Operations Per Second,每秒輸入输出操作数)是硬盘性能的重要指标,是指一秒内磁盘能够处理的IO请求数量。对于随机读写频繁的系统,IOPS是主要性能指标。磁盘另一个重要参数是数据吞吐量,数据吞吐量为磁盘中每秒钟IO的流量,其值等于IOPS和数据块大小的乘积,主要用于衡量大量连续读写的应用。

(2)延时

延时是接收到服务请求到返回一个指令所消耗的时间,访问延迟增大时,业务系统也会有相应的延迟。固态硬盘的延时包括读延时和写延时。SSD的延时又会传导到数据库,引起数据库的延时,也是SSD的重要衡量指标。

(3)QoS

QoS(Quality of Service,服务质量)可以分析一段时间内的延时表现,可以用一定的数据读写下延迟不大于指定时间的方式来表示[9]。QoS体现的是一定数据模型下的延时要求,对数据库有重要意义。

1.2  数据库报告分析

表1为某运营商实际业务系统中,核心数据库Oracle的AWR报告(Automatic Workload Repository,自动负载信息库)中,排名前5的前台等待事件(Top 5 Timed Foreground Events)。AWR是Oracle提供的性能监控及分析工具,能够生成某个时间段内系统资源使用报告,从而为系统调优提供依据。该系统为交易类型业务,采用全闪存阵列。从图1中可以看到在应用层面调优后,整个系统最大的瓶颈一般会落到IO层面。表1中的等待事件Log file sync与日志写相关的,Db file sequential read事件与索引相关读相关。日志写相关的等待时间占到DB整体等待时间的65.44%,所以写IO的时延至关重要。

表2为上述AWR报告中,按等待时间从大到小排列的前四个后台等待事件。从表2中可以看到,在大并发压力下,即使用全闪存阵列写延时也可能到达ms级别。其中,Log file parallel write即为Log file sync等待事件中和IO相关的部分。如果可以降低Log file parallel write的延时,则数据库等待IO的时间会大大降低,CPU的IO wait会大大降低,从而提高业务性能和CPU利用率。

因此,如果在SSD上部署数据库等应用,大并发混合读写压力下,低写延时对数据库整体性能至关重要。

1.3  SSD延时特点

实际业务系统中,SSD读性能一般不会成为瓶颈,这是由于SSD读IOPS远高于写IOPS,其在单位时间内可以响应更多并发IO请求。而在实际应用中,SSD写延时会影响到数据库性能。对于数据库、文件系统、分布式文件系统等,其日志文件写入一般为顺序写或并发顺序写。但是,由于业务层还混合了其他读写操作,到SSD层面IO会变为大并发的随机读写。由于数据相关性要求,一些上层应用的IO完成必须在日志文件完成写入之后,故日志文件写入对延时要求又比较高。因此,综合以上情况,在大并发情况下,需要重点关注SSD写延时。

对闪存介质来讲,SSD的写延时要普遍优于读延时。SSD读的过程中描述如下:数据需要从NAND里面读出;NAND读取过程中,需要对字线加电压偏执,从位线通过感测放大器来读取结果,仅这个过程一般需要约60μs。SSD写过程描述如下:写数据先到达DRAM(NVMe SSD)或者SRAM(Host-Based SSD),随即返回写完成,写延时较短,SSD内部负责数据将写入到NAND颗粒中。

在SSD可承受的压力范围内(即在一定IOPS范围内),SSD延时比较平稳,当压力增大到一定值后,虽然IOPS还会有增加,但是延时却会呈指数上升。在SSD测试过程中,对延时进行合理的限定是有必要的:尤其对写延时而言,在SSD可承受的IOPS范围内,写延时保持很低水平,当压力继续增大,延时则会大幅增加到毫秒以上。

1.4  数据模型

数据库的数据块大小主要为4K或8K。在对核心长期监测中发现,数据库的数据读写類型主要是70%的随机读和30%的随机写。为了贴近生产环境,运营商的核心系统数据块设置为4K,读写比例为70%的随机读和30%的随机写。

考虑到SSD本身的读写延时情况和核心系统对SSD的延时需求,为保障核心系统性能,将SSD的QoS条件设定为:在70%随机读30%随机写的4K的条件下,SSD读延时不超过1 000 μs,写延时不超过200 μs。

1.5  指标建议值

综上所述,由于运营商核心数据库主要为4K或8K的数据块,且读写类型为随机读写频繁,因此,将IOPS定义为主要性能指标,可以使性能指标贴近生产实际需要。同时,考虑到实际生产环境的时延要求,该性能指标还必须是在满足QoS指标的条件下测得的IOPS值。

2    评估方法

2.1  主要工具

本文通过开源软件FIO和nmon进行SSD性能评估。

FIO是一款开源I/O性能测试工具,广泛应用于企业级SSD、HDD以及磁盘阵列性能测试中。支持主流的操作系统平台,如Windows Server及常用的Linux发行版,可以直接编译或移植到各种操作系统中运行。该软件支持多进程,队列深度指定,磁盘块大小指定如4 KB,存储引擎指定如libaio,测试日志记录等功能。如果将多组fio测试命令依次写入测试脚本,则可先覆盖存储设备全部LBA 数遍,然后连续获取高工作负载情况下存储设备的性能指标。用户可根据最终日志输出结果制成可视化图表。FIO主要参数包括:

Blocksize:数据块大小。

rw:负载类型,主要包括raed(顺序读)、write(顺序写)、randrw(随机读写)。

size:每次IO请求要读写的数据量。

ioengine:I/O引擎,windows下可使用windowsaio,Linux可使用libaio、sync、psync等。

iodepth:I/O深度,每次提交的I/O请求个数。iodepth开始增加时,IOPS及带宽也相应增加。但iodepth增大到一定程度时,IOPS和带宽增加缓慢甚至保持不变,但延时将大幅度上升,这是因为需要花费更多的时间等待请求IO数量达到iodepth数值后才发出IO请求。队列深度的大小设置将影响IOPS、延时和QoS的测量。

numjobs:本次任务克隆的数量(线程/进程执行相同的任务)。这个参数具体要根据SSD和服务器的性能来确定,目标是使服务器能达到满载。

nmon是一款Linux性能监测工具,可以收集CPU利用率、内存使用量、磁盘IO、网络IO、进程信息等。mmon消耗的系统资源很少。nmon用于记录测试过程中CPU、内存等系统资源的占用率、硬盘IOPS。

2.2  硬件环境

测试主机配置为:

CPU:Intel XEON E7-8870v3系列18核2.1GHz主频;

内存:512 GB;

操作系统:RedHat 6.5(X64);

SSD为3.2T MLC PCIe2.0 SSD卡。

性能强劲的硬件平台,可以保障性能测试过程中,系统资源产生使SSD处于极限工作下的负载。

2.3  性能优化

要充分发挥SSD卡的性能,还需要考虑CPU进程优化、4K对齐及文件系统等影响因素。

使用单进程(单一作业)测试时,即使使用很深的队列,仍然可能有性能瓶颈。对于高性能存储产品,在使用较深的队列例如32/64测试时,建议尝试4~8个以上进程。如果使用队列深度为1,块大小为4 KB,则读测试进程数量应达到256~512个,写测试进程最高应测到128个。单CPU核心因为性能限制,按照不同的频率,最高大约可以达到100k~200k的IOPS。只有使用合适的进程数量、队列深度、块大小的组合进行测试,才能达到比较理想的数值。这同样适用于实际应用程序的调优。

由于SSD读写的最小单元为页,页大小一般为4K或8K。SSD不能像机械硬盘那样对要写入的单元进行覆盖寫入,而是在写入数据前,先擦除要写入单元的数据再写入。擦除时最好的单位是块,块可以由多个页组成。4K对齐可以让操作系统最小分配单元和SSD的最小单元对应,这样可以使SSD性能的优化。

SSD上新建分区并格式化文件系统的情况下,不同的文件系统及参数设定影响到SSD性能的发挥。在生产环境下,读写频繁的核心数据库如Oracle数据库,会直接读写裸设备。作为承载核心业务数据的SSD来说,裸设备能够充分发挥SSD的性能。为了排除文件系统对测试的干扰,在测试中采用FIO对分区格式化的SSD裸盘进行读写。

2.4  评估步骤

对SSD的性能评估过程主要包括清空SSD、预热和启动性能测试等步骤。

(1)清空SSD

使用安全擦除工具将SSD完整擦除一遍,清空测试盘,使回到全新盘的状态,并静置10分钟,保证所有测试从同一个点开始,降低因为SSD上已有数据随机度不一致引起的测试误差。

(2)预热使用FIO对SSD全盘顺序写满两遍

开启读写测试,顺序填充完全空白的SSD两遍,保证全部SSD空间包括Over Provsioning超额提供的空间均填充数据。全部数据块(LBA)都必须全盘顺序填充数据两次,如果不是顺序填充,顺序读写测试则不是真正的顺序读写,因为连续块有大有小。要么SSD里没有数据,要么垃圾回收机制没有工作在最高强度下。如果不填充,则可能导致读写性能非常高,得到的数据不是正常工作负载下的持续性能数值。

2)数据读取

通过mon_analyse解析nmon输出的文件文件,生成分析报表。

3   结果分析

从FIO结果中可以看到,SSD样品在测试过程中的平均读时延为403.89 μs,写时延为67.67 μs,满足测试中规定的QoS要求。通过nmon结果可知,整个测试周期中,测试主机CPU占用率约为2.8%,内存占用率约为1.94%,SSD卡对主机的资源占用率极低,主机资源不会造成测试的性能瓶颈。

从图1中可以看到,在启动测试到第41分钟的第I阶段内,由于前一阶段的SSD在顺序写后,数据块的空间连续,随机读和随机写的IOPS均比正常使用时偏高。从第41分钟到2小时40分钟的第II阶段,由于SSD上的存储空间已写满,垃圾回收机制启动。SSD每次写操作时,需要写入的存储空间单位为Page,而且只能写入到空白的Page中。在存储空间已满的情况下,就必须先进行一次擦除操作,而擦除操作的单元为Block(1Block由256个Page组成)。SSD写入数据的时候的步骤包括:

(1)将Block中的除要写入page外的其他数据块写入SSD的预留空间(OP, Over-Provisioning);

(2)擦除要写入Page所在Block的全部数据;

(3)将要写入Page的数据和OP中的数据块写入Block。

因此,一个写入操作引起的是整个Block的擦除和写入,即一次写入请求,最终落到硬盘上是放大多倍的写入操作。在极端情况下,甚至出现写入4 KB的数据,实际写入却为512 KB,达到128倍的写放大。垃圾回收的TRIM指令将要写入Page的数据块标注为无效,在写入OP时,只将有效的Page数据块而不将其他数据块中无效的数据块写入OP。TRIM指令可以降低写放大,使SSD具有更高的吞吐率。启动垃圾回收时,由于持续的IO读写请求和垃圾回收启动的双重影响,产生了资源冲突,因此引起读写性能迅速下降。随后,随着垃圾回收机制的启动进展,资源冲突逐渐缓解,IOPS性能值继续抬升。在垃圾回收机制稳定运行后,SSD性能进入第III阶段。由于SSD中的存储空间均已写满,该盘的垃圾回收机制已经移动运行,并且盘上的数据随机度足够,SSD的IO性能进入稳态。

在实际生产环境中,运营商业务系统在部署上线后,在经历全盘读写后的数小时后,也将进入第III阶段的稳态。计算第III阶段稳态下的IOPS值,可以得到该SSD在70%随机读30%随机写的4K的负载下的性能值为:207 977 io/s。通过本方案所评估的性能指标,其数据模型、测试过程和指标选取贴近生产需求,因此,测试中所评估的SSD性能与在实际生产环境中可能达到的IOPS一致。因此,运营商可以根据性能评估结果,选择能达到业务系统性能规划要求的SSD。

性能测试如图1所示:

4   结束语

至此,本文根据电信运营商业务系统的实际需求,分析AWR报告,提炼了运营商业务系统数据模型。在这基础上,构建了固态硬盘性能评估方案,以FIO和nmon为测试工具,搭建硬件环境,分析了SSD的优化因素,并对评估步骤进行了详细描述。本文还分析了测试结果,对测试中的三个阶段进行了描述。本文所提供的评估方法不仅可以用于PCIe SSD,也同样适用于SATA/SAS/NVMe等类型SSD的性能测试。通过本文的测试方案贴近生产环境需要,所提出的SSD性能评估方法所测得的SSD性能与生产环境下相近,从而可以为5G时代的运营商业务系统规划设计、优化提供依据,有力地保障了核心业务系统的部署。

参考文献:

[1]    張丹. 引领AI时代的监控存储方案[J]. 中国公共安全, 2018(6): 148-149.

[2]    李鑫,孙蓉,刘景伟. 分布式存储系统中容错技术综述[J]. 无线电通信技术, 2019(5): 463-475.

[3]    肖尧. 面向5G低时延高可靠车载业务的计算卸载策略研究[D]. 西安: 西安电子科技大学, 2019.

[4]    张卫. 存储器技术的新进展[J]. 集成电路应用, 2020    (3):10-12.

[5]     彭振翼. 固态存储系统PCIe接口的设计方法与实现[D].  武汉: 华中科技大学, 2013.

[6]    润冬,刘芳,肖侬,等. PCIe SSD I/O栈设计与原型系统研究[J]. 计算机研究与发展, 2015(S2): 124-130.

[7]    马娜,朱立谷,陈志杰,等. 磁盘阵列性能测试工具研究[J]. 计算机工程与应用, 2010(36): 74-78.

[8]    常宝升. 基于IP-SAN的存储虚拟化系统研究[D]. 哈尔滨: 哈尔滨工程大学, 2008.

[9]    赵雷. 块设备自动化测试系统的设计及优化[D]. 北京: 中国科学院大学, 2017.

[10]   赵梦茹. 移动终端Linux存储IO性能分析与优化[D]. 西安: 西安电子科技大学, 2014.

猜你喜欢

数据模型
基于Pro/E 的发射装置设计数据快速转化方法
面板数据模型截面相关检验方法综述
人民币汇率波动对张家界入境旅游的影响——基于主要客源国面板数据模型的分析
加热炉炉内跟踪数据模型优化
财政支出效率与产业结构:要素积累与流动——基于DEA 和省级面板数据模型的实证研究
经济全球化对我国劳动收入份额影响机制研究——基于面板数据模型
环境规制、行业异质性与区域产业集聚——基于省际动态面板数据模型的GMM方法
基于分位数回归的电力负荷特性预测面板数据模型
面向集成管理的出版原图数据模型
基于数据模型的编程应用