存储性能测试分析方法及系统

文档序号:96754 发布日期:2021-10-12 浏览:33次 >En<

阅读说明:本技术 存储性能测试分析方法及系统 (Storage performance test analysis method and system ) 是由 本條嵩騎 纪亮 于 2020-04-02 设计创作,主要内容包括:本发明涉及一种存储性能测试分析方法,其包括:获取HOST端与固态存储设备之间传输的协议报文数据;根据所述协议报文数据分析得到存储性能数据。其优点是:通过对固态存储产品运行过程中的协议报文数据进行采集分析得到存储性能数据,存储性能数据由于是以协议报文数据为基础,因此可以达到细粒度级别的性能分析要求。(The invention relates to a storage performance test analysis method, which comprises the following steps: acquiring protocol message data transmitted between an HOST end and a solid-state storage device; and analyzing the protocol message data to obtain storage performance data. The advantages are that: the protocol message data in the running process of the solid-state storage product is collected and analyzed to obtain the storage performance data, and the storage performance data is based on the protocol message data, so that the performance analysis requirement of a fine granularity level can be met.)

存储性能测试分析方法及系统

技术领域

本发明涉及存储

技术领域

,特别是涉及一种存储性能测试分析方法及系统。

背景技术

固态存储是采用电子存储介质进行数据存储和读取的一种技术,其突破了传统机械硬盘的性能瓶颈,拥有极高的带宽和IOPS(Input/Output Per Second每秒读写次数)性能。

Standard Size SD(SD)、micro SD(TF)、embedded Multi Media Card(eMMC)、Nano Memory Card(NM)等固态存储产品广泛应用于手机、平板、相机、车载等各个领域,它们面临的一个共同挑战是如何满足越来越高的性能和稳定性需求。

用于固态存储的常见性能测试软件有ATTO、IOMeter、CrystalDiskMark等,但这些软件只能对固态存储产品的整体性能进行测试,当固态存储产品存在性能异常时,上述测试工具均不能做更进一步的性能分析以及问题定位,现阶段也缺乏对应的测试方法和测试工具。

发明内容

基于此,有必要针对无法对固态存储产品进行细粒度分析的问题,提供一种存储性能测试分析方法及系统,可以对固态存储产品进行细粒度性能分析,并实现在固态存储产品出现性能问题后对问题位置进行准确定位。

一种存储性能测试分析方法,其特征是,包括:

获取HOST端与固态存储设备之间传输的协议报文数据;

根据所述协议报文数据分析得到存储性能数据。

上述的存储性能测试分析方法,其中,所述的根据所述协议报文数据分析得到存储性能数据的步骤具体包括:

获取协议报文数据中读/写指令对应的起始时间、结束时间、区块大小以及区块个数;

根据所述读/写指令对应的起始时间、结束时间、区块大小以及区块个数得到读/写性能数据。

上述的存储性能测试分析方法,其中,所述的根据所述读/写指令对应的起始时间、结束时间、区块大小以及区块个数得到读/写性能数据的步骤具体包括:

根据以下计算公式得到所述读/写性能数据:

Spend Time=End Time2-Start Time1;

Sector Count=Block Count×Block Size;

Performance=Sector Count/Spend Time;

式中,Spend Time表示传输所述读/写指令中指定数据的耗费时长,End Time2表示所述读/写指令对应的结束时间,Start Time1表示所述读/写指令对应的起始时间,Block count表示所述读/写指令对应的区块个数,Block size表示所述HOST端设定的区块大小,Sector Count表示读/写指令对应的传输数据字节数,Performance表示所述读/写性能数据。

上述的存储性能测试分析方法,其中,还包括:

根据所述存储性能数据绘制性能图。

上述的存储性能测试分析方法,其中,还包括:

绘制以横坐标为传输各所述读/写指令对应的时间,纵坐标为各所述读/写指令对应的读/写性能数据的性能图。

上述的存储性能测试分析方法,其中,还包括:

绘制以横坐标为不同的所述传输数据字节数,纵坐标为与各不同的所述传输数据字节数相对应所述读/写指令的读/写性能数据的性能图。

上述的存储性能测试分析方法,其中:

所述的固态存储设备包括SD、TF、eMMC、NM中的任意一种。

一种存储性能测试分析系统,其特征是,包括:

采集模块,用于获取HOST端与固态存储设备之间传输的协议报文数据;

分析处理模块,用于根据所述协议报文数据分析得到存储性能数据。

上述的存储性能测试分析系统,其中:

所述的采集模块包括协议分析仪或抓包工具。

上述的存储性能测试分析系统,其中,还包括:

绘制模块,用于根据所述存储性能数据绘制性能图。

上述的存储性能测试分析方法及系统,通过对固态存储产品运行过程中的协议报文数据进行采集分析得到存储性能数据,存储性能数据由于是以协议报文数据为基础,因此可以达到指令级别的细粒度性能分析要求,还通过对存储性能数据进行性能图的绘制,实现当固态存储产品出现性能问题后可以根据性能图对问题位置进行准确定位的目的。

附图说明

图1为本发明的存储性能测试分析方法的具体流程图;

图2为本发明的存储性能测试分析方法中根据协议报文数据分析得到存储性能数据的步骤的具体方法流程图;

图3为本发明的存储性能测试分析方法的实施例中的协议报文数据的示例图;

图4为本发明的存储性能测试分析方法的实施例中的以横坐标为传输各写指令对应的时间,纵坐标为各写指令对应的写性能数据的性能图;

图5为本发明的存储性能测试分析方法的实施例中的以横坐标为不同的传输数据字节数,纵坐标为与各不同的传输数据字节数相对应读/写指令的读/写性能数据的性能图;

图6为本发明的存储性能分析系统的实施例中HOST端与固态存储设备eMMC的连接结构示意图;

图7为本发明的存储性能分析系统的连接结构示意图。

具体实施方式

为了更好地理解本发明的目的、技术方案以及技术效果,以下结合附图和实施例对本发明进行进一步的讲解说明。同时声明,以下所描述的实施例仅用于解释本发明,并不用于限定本发明。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

在使用本文中描述的“包括”、“具有”、和“包含”的情况下,除非使用了明确的限定用语,例如“仅”、“由……组成”等,否则还可以添加另一部件或方法。除非相反地提及,否则单数形式的术语可以包括复数形式,并不能理解为其数量为一个。

HOST端和组件级固态存储设备之间的通信都是由HOST端以一个指令(Command)开始发起的,存储设备在完成指令所指定的任务后,则返回一个响应(Response),所述的指令包括但不限于读指令(Read Command)、写指令(Write Command)。所述的组件级固态存储设备包括但不限于SD、TF、eMMC、NM。

如图1所示,本发明提供一种存储性能测试分析方法,其包括:

S1、获取HOST端1与固态存储设备2之间传输的协议报文数据;协议报文数据的获取通常指在固态存储设备2运行时所进行的,协议报文数据的获取时间可以根据需要来选择;协议报文数据通常是由一条条指令(Command)和响应(Response)这样的记录组成,每条记录都有对应的时间戳以及一些相关信息。

S2、根据协议报文数据分析得到存储性能数据。

本发明通过对固态存储产品运行过程中的协议报文数据进行采集分析得到存储性能数据,存储性能数据由于是以协议报文数据为基础,因此可以达到指令级别的细粒度性能分析要求。

在一示例中,在步骤S2之后还可以包括:

S3、根据存储性能数据绘制性能图。通过对存储性能数据进行性能图的绘制,可以实现当固态存储产品出现性能问题后可以根据性能图对问题位置进行准确定位的目的。

在一示例中,如图2所示,步骤S2的根据协议报文数据分析得到存储性能数据的步骤具体包括:

S21、获取协议报文数据中读/写指令对应的起始时间、结束时间、区块大小以及区块个数;这里提到的区块大小通常由HOST端1设定,一般固定为512Bytes;值得注意的是,协议报文数据中通常包含很多信息,我们获取其中与存储性能有直接关联的读指令和写指令的相关信息,当然,在一些示例中也可以只获取读指令及其相关信息或者只获取写指令及其相关信息,以分别仅对读取性能或者写入性能进行评估分析;

S22、根据读/写指令对应的起始时间、结束时间、区块大小以及区块个数得到读/写性能数据。

在一示例中,步骤S22的根据读/写指令对应的起始时间、结束时间、区块大小以及区块个数得到读/写性能数据的步骤具体包括:

根据以下计算公式得到读/写性能数据:

Spend Time=End Time2-Start Time1;

Sector Count=Block Count×Block Size;

Performance=Sector Count/Spend Time;

式中,Spend Time表示传输所述读/写指令中指定数据的耗费时长,End Time2表示所述读/写指令对应的结束时间,Start Time1表示所述读/写指令对应的起始时间,Block count表示所述读/写指令对应的区块个数,Block size表示所述HOST端设定的区块大小,Sector Count表示读/写指令对应的传输数据字节数也就是单个网络包的传输的字节数,Performance表示所述读/写性能数据。可以看出,由于采集分析的是协议报文数据中的一条条指令,因此可以达到指令级别的细粒度性能分析要求。

在一示例中,所述的步骤S3可以包括:

S3a、绘制以横坐标为传输各读/写指令对应的时间,纵坐标为各读/写指令对应的读/写性能数据的性能图。这里的各读/写指令对应的时间通过从协议数据中各读/写指令对应的起始时间获取。

在另一示例中,所述的步骤S3可以包括:

S3b、绘制以横坐标为不同的所述传输数据字节数,纵坐标为与各不同的所述传输数据字节数相对应所述读/写指令的读/写性能数据的性能图。

如图7所示,本发明还提出一种存储性能测试分析系统,其包括:

采集模块3,用于获取HOST端1与固态存储设备2之间传输的协议报文数据;所述的采集模块3可以包括协议分析仪或其它支持指定协议分析的抓包工具。

分析处理模块4,用于根据协议报文数据分析得到存储性能数据;

绘制模块5,用于根据存储性能数据绘制性能图。

接下来将结合图3~7,以固态存储设备2为eMMC21为例,进一步说明本发明的工作原理:

如图6所示,通常HOST端1与eMMC21间存在CLK、CMD、DAT0-7、Data Strobe四大信号的传输,其中,CLK信号用于从Host端1输出时钟信号,进行数据传输的同步和设备运作的驱动,CMD信号主要用于Host端1向eMMC21发送指令和eMMC21向Host端1发送对应的响应,DAT0-7信号主要用于Host端1和eMMC21之间的数据传输,Data Strobe时钟信号由eMMC21发送给Host,频率与CLK信号相同,用于Host端1进行数据接收的同步。Host端1与eMMC21之间的通信都是由Host端以一个指令开始发起的,eMMC21在完成指令所指定的任务后,则返回一个响应。

本实施例的存储性能测试分析方法包括以下步骤:

在eMMC21使用期间,通过协议分析仪3获取HOST端1与eMMC21之间传输的协议报文数据;将获取的协议报文数据存在LOG文件,本实施例中,得到的LOG文件(作为示例只截取部分数据)如图3所示,其协议报文数据中,读数据的指令有CMD17(从指定的地址开始,读取一个区块(Block)的数据),CMD18(从指定的地址开始,读取多个区块(Multiple Block)的数据);写数据的命令有CMD24(写入一个区块(Block)的数据),CMD25(写入多个(MultipleBlock)的数据)。

获取协议报文数据中每一条写指令(CMD24,CMD25)对应的起始时间、结束时间、区块大小以及区块个数,本实施例中区块大小由HOST端1设定为512Bytes;当然,在另一些示例中,还可以是获取每一条读指令(CMD17,CMD18)对应的起始时间、结束时间、区块大小以及区块个数,在还有一些示例中,也可以获取所需要的指定读指令或指定写指令的相关数据,在此不做限制;

根据每一条写指令对应的起始时间、结束时间、区块大小以及区块个数得到写性能数据,具体的:

根据写指令对应的起始时间、结束时间、区块大小以及区块个数得到该条写性能数据:

Spend Time=End Time2-Start Time1;

Sector Count=Block Count×Block Size;

Performance=Sector Count/Spend Time;

此时,Spend Time表示传输写指令中指定数据的耗费时长,End Time2表示写指令对应的结束时间,Start Time1表示写指令对应的起始时间,Block count表示所述写指令对应的区块个数,Block size表示所述HOST端设定的区块大小,Sector Count表示写指令对应的传输数据字节数,Performance表示写性能数据。

根据上式,对所有写指令数据依次进行解析计算,就可以得到所有写指令的写性能数据。

为了更方便的对问题进行定位,可以将上述数据结合图表进行展示,具体的:

如图4所示,绘制以横坐标为传输各写指令对应的时间,纵坐标为各写指令对应的写性能数据的性能图。

由于理论上传输数据的字节数(Sector Count)越多,存储性能越高,如图5所示,还可以绘制以横坐标为不同的传输数据字节数(Sector Count),纵坐标为与各不同的传输数据字节数相对应的写指令的写性能数据的性能图,以便于通过性能图来查看在不同传输字节下的写性能是否出现异常。

当发现性能异常后,结合上述两幅图可以很容易的定位到相应的时间点以及指令,并进行进一步数据分析。

当然,在另一些实施例中,还可以同时得到协议报文数据中读指令(CMD17,CMD18)的上述相关数据,并结合得到的读性能数据绘制相关性能图,与写指令的性能图相结合来进行异常数据诊断。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static RandomAccess Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

应该理解的是,虽然各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:包括测试控制信号发生电路的存储器件和存储系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!