分布式存储系统的IO性能分析方法、系统及相关组件与流程

文档序号:19828271发布日期:2020-02-04 12:07阅读:327来源:国知局
分布式存储系统的IO性能分析方法、系统及相关组件与流程

本发明涉及存储技术领域,特别是涉及一种分布式存储系统的io性能分析方法、系统及相关组件。



背景技术:

随着应用的数据量的不断扩大,客户对于分布式存储系统的性能要求也越来越高。性能作为衡量分布式存储系统的重要指标,被越来越多的厂商所重视。

目前,通过基于分布式存储的性能测试工具,可以方便地获取分布式存储集群的iops、带宽以及耗时统计,进而工作人员可以根据这些数据了解分布式存储系统的基本性能指标。但是,目前的性能测试工具,在部分场合中,仍然无法分析出分布式存储系统的性能瓶颈点。

综上所述,如何有效地协助工作人员分析出分布式存储系统的性能瓶颈点,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种分布式存储系统的io性能分析方法、系统及相关组件,以有效地协助工作人员分析出分布式存储系统的性能瓶颈点。

为解决上述技术问题,本发明提供如下技术方案:

一种分布式存储系统的io性能分析方法,包括:

在分布式存储系统的io栈的每一个流程中均设置监控点;

获取客户端在预设的第一时长内发送的io流量;

通过设置的各个所述监控点,确定出所述io流量在每一个流程中的耗时信息,以通过确定出的各个耗时信息进行所述分布式存储系统的io性能分析。

优选的,所述获取客户端在预设的第一时长内发送的io流量之后,还包括:

根据获取的所述io流量中的各个io数据的大小,将所述io流量进行分流,得到至少2个类别的io流量;

相应的,所述确定出所述io流量在每一个流程中的耗时信息,包括:

针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

优选的,所述获取客户端在预设的第一时长内发送的io流量之后,还包括:

根据获取的所述io流量中的各个io数据的类型,将所述io流量进行分流,得到写入操作类别,删除操作类别,修改操作类别以及读取操作类别,共4个类别的io流量;

相应的,所述确定出所述io流量在每一个流程中的耗时信息,包括:

针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

优选的,所述获取客户端在预设的第一时长内发送的io流量之后,还包括:

根据获取的所述io流量中的各个io数据的大小以及各个io数据的类型,将所述io流量进行分流,得到多个类别的io流量;

相应的,所述确定出所述io流量在每一个流程中的耗时信息,包括:

针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

优选的,在所述第一时长内获取的io流量大于预设的高峰期流量值;

所述高峰期流量值为通过以下步骤确定出的数值:

统计所述分布式存储系统在运行n天时,每一天的流量高峰时段的io流量,并通过取平均值的方式确定出所述高峰期流量值。

一种分布式存储系统的io性能分析系统,包括:

监控点设置模块,用于在分布式存储系统的io栈的每一个流程中均设置监控点;

io流量获取模块,用于获取客户端在预设的第一时长内发送的io流量;

分段式耗时信息确定模块,用于通过设置的各个所述监控点,确定出所述io流量在每一个流程中的耗时信息,以通过确定出的各个耗时信息进行所述分布式存储系统的io性能分析。

优选的,还包括:

第一分流模块,用于根据获取的所述io流量中的各个io数据的大小,将所述io流量进行分流,得到至少2个类别的io流量;

相应的,所述分段式耗时信息确定模块,具体用于:

通过设置的各个所述监控点,针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

优选的,还包括:

第二分流模块,用于根据获取的所述io流量中的各个io数据的类型,将所述io流量进行分流,得到写入操作类别,删除操作类别,修改操作类别以及读取操作类别,共4个类别的io流量;

相应的,所述分段式耗时信息确定模块,具体用于:

通过设置的各个所述监控点,针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

一种分布式存储系统的io性能分析设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现上述任一项所述的分布式存储系统的io性能分析方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的分布式存储系统的io性能分析方法的步骤。

应用本发明实施例所提供的技术方案,考虑到目前的分布式存储系统的io栈的流程通常较长,传统方案虽然能够从整体进行分析,但部分场合中不容易准确地分析出性能的瓶颈点。因此,本申请的方案中,在分布式存储系统的io栈的每一个流程中均设置了监控点,使得获取了客户端在预设的第一时长内发送的io流量之后,可以通过设置的各个监控点,确定出io流量在每一个流程中的耗时信息。由于确定出了io流量在每一个流程中的耗时信息,也就有利于协助工作人员更加方便有效地进行分布式存储系统的分析,进而发现分布式存储系统中的瓶颈点、因此,本申请的方案可以有效地协助工作人员分析出分布式存储系统的性能瓶颈点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明中一种分布式存储系统的io性能分析方法的实施流程图;

图2为本发明中一种分布式存储系统的io性能分析系统的结构示意图;

图3为本发明中一种分布式存储系统的io性能分析设备的结构示意图。

具体实施方式

本发明的核心是提供一种分布式存储系统的io性能分析方法,可以有效地协助工作人员分析出分布式存储系统的性能瓶颈点。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明中一种分布式存储系统的io性能分析方法的实施流程图,该分布式存储系统的io性能分析方法可以包括以下步骤:

步骤s101:在分布式存储系统的io栈的每一个流程中均设置监控点。

本申请的方案中,考虑到目前的分布式存储系统的io栈的流程通常较长,传统方案虽然能够从整体进行分析,但在部分场合中不容易准确地分析出性能的瓶颈点。因此,本申请的方案采用分段式的分析方式。

首先,需要在分布式存储系统的io栈的每一个流程中均设置监控点,使得后续步骤进行耗时信息的统计时,可以对每个流程进行单独统计。

步骤s102:获取客户端在预设的第一时长内发送的io流量。

第一时长的具体取值可以根据需要进行设定和调整,并且,本申请的方案通常可以应用在性能测试工具中,因此,io流量中包括的每一个io数据的类型,大小以及io流量中包括的io数据的数量均可以进行利用性能测试工具来进行设定和调整。

步骤s103:通过设置的各个监控点,确定出io流量在每一个流程中的耗时信息,以通过确定出的各个耗时信息进行分布式存储系统的io性能分析。

耗时信息通常包括平均时延,最大时延以及最小时延这三项,当然,少部分场合中,也可以根据需要进行调整,例如还包括总时延等信息。

由于预先设定了各个监控点,因此本申请的方案可以确定出io流量在每一个流程中的耗时信息。例如io流量中包括了100个io数据,分布式存储系统的io栈中包括了7个流程,例如在执行第1个流程时,这100个io数据中的最小时延例如是第5个io数据所耗费的3秒钟,最大时延例如为第62个io数据耗费的7.5秒钟,平均时延例如为4秒。相应的,在执行第2个流程时,也可以确定出这100个io数据中的最小时延、最大时延以及平均时延。同理可以确定出其余5个流程的耗时信息,即该种实施方式中可以确定出7个耗时信息,对应7个流程,每个耗时信息包括三个项目。确定完毕之后,便可以对这些确定出的耗时信息进行记录,工作人员后续便可以基于这些耗时信息进行分布式存储系统的io性能分析,当然,用户也可以随时查看这些记录数据。

需要说明的是,该种实施方式中便于描述,假设io流量中包括了100个io数据,分布式存储系统的io栈中包括了7个流程,在实际应用中,这些数据当然可以为其他取值,并不影响本发明的实施。后文例子中的数据举例与此同理。

应用本发明实施例所提供的技术方案,考虑到目前的分布式存储系统的io栈的流程通常较长,传统方案虽然能够从整体进行分析,但部分场合中不容易准确地分析出性能的瓶颈点。因此,本申请的方案中,在分布式存储系统的io栈的每一个流程中均设置了监控点,使得获取了客户端在预设的第一时长内发送的io流量之后,可以通过设置的各个监控点,确定出io流量在每一个流程中的耗时信息。由于确定出了io流量在每一个流程中的耗时信息,也就有利于协助工作人员更加方便有效地进行分布式存储系统的分析,进而发现分布式存储系统中的瓶颈点、因此,本申请的方案可以有效地协助工作人员分析出分布式存储系统的性能瓶颈点。

进一步地,在本发明的一种具体实施方式中,在步骤s102之后,还可以包括:

根据获取的io流量中的各个io数据的大小,将io流量进行分流,得到至少2个类别的io流量;

相应的,步骤s103中描述的确定出io流量在每一个流程中的耗时信息,可以具体为:

针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

该种实施方式中,考虑到虽然前文中基于各个流程,采用分段式的分析方式有利于协助工作人员分析出分布式存储系统的性能瓶颈点。但是,该分析结果只适用于步骤s102中获取到的特定的io流量。在实际应用中,客户现场的业务千变万化,不同的io流产生的性能效果不同,前述实施例中针对固定构成的io流较为有效,却无法很好地模拟出实际现场的io流情况。

该种实施方式中,考虑到客户现场的io流量的明显特征之一是数据大小的不确定,因此,申请人考虑到可以根据大小进行分类,分别进行不同大小的io流量的耗时统计,也就有利于工作人员分别查看每一类的耗时信息,从而更好地协助工作人员进行分布式存储系统的性能瓶颈点的分析。

具体的,根据获取的io流量中的各个io数据的大小,将io流量进行分流,得到至少2个类别的io流量。例如在一种具体实施方式中,io流量中包括了100个io数据,将这100个io数据中,小于4k的io数据作为一类,例如有35个,4k到4m的数据作为一类,例如有20个,大于4m的数据作为一类,例如有45个。

进行了分类之后,后续针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。例如针对分流之后的小于4k的这一类别的io流量,由35个io数据构成,仍然假设分布式存储系统的io栈中包括了7个流程,这35个io数据例如在执行第1个流程时,最小时延例如为3秒,最大时延例如为7.5秒,平均时延例如为4秒,则这35个io数据在第1个流程的耗时信息便确定完毕。其他的类别与此同理,该种实施方式中,便可以得到3×7=21个耗时信息。

此外需要说明的是,该种实施方式中,0至4k,4k至4m,以及大于4m构成了3个分流区间,即,将io流量中的各个io数据分成了3个类别,在其他实施方式中,可以分成其他数量的类别,并且分流区间的边界值也可以根据需要进行设定和调整,并不影响本发明的实施。

在本发明的一种具体实施方式中,在步骤s102之后,还可以包括:

根据获取的io流量中的各个io数据的类型,将io流量进行分流,得到写入操作类别,删除操作类别,修改操作类别以及读取操作类别,共4个类别的io流量;

相应的,步骤s103中描述的确定出io流量在每一个流程中的耗时信息,可以具体为:

针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

前文中基于io数据的大小进行了分类,该种实施方式中,考虑到客户现场的io流量的另一个特征是io数据的类型不固定,即实际应用中,不同时段的写入操作,删除操作,修改操作以及读取操作的比例不确定,因此,该种实施方式中,基于这四种类型的io操作进行分类。即,使得工作人员可以单独分析某一类型的io数据的耗时信息,有利于进一步地协助工作人员进行分布式存储系统的性能瓶颈点的分析。

仍然假设分布式存储系统的io栈中包括了7个流程,由于该种实施方式中,将io流量进行分流,得到了写入操作类别,删除操作类别,修改操作类别以及读取操作类别,共4个类别的io流量,因此该种实施方式中,可以得到7×4=28个耗时信息,每个耗时信息通常可以包括最小时延,最大时延,平均时延这三个项目。

在本发明的一种具体实施方式中,在步骤s102之后,还可以包括:

根据获取的io流量中的各个io数据的大小以及各个io数据的类型,将io流量进行分流,得到多个类别的io流量;

相应的,确定出io流量在每一个流程中的耗时信息,包括:

针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

该种实施方式中,可以同时根据io流量中的各个io数据的大小以及各个io数据的类型进行分流。即实现了更加细致的分类,有利于协助工作人员进行分布式存储系统的性能瓶颈点的分析。

例如,100个io数据中,先区分出小于4k的io数据,例如有35个,4k到4m的数据例如有20个,大于4m的数据例如有45个。小于4k的这35个io数据中,写入操作例如有6个,删除操作例如有8个,修改操作例如有8个,读取操作例如有13个。同理,4k到4m的20个io数据以及大于4m的45个io数据也按照io数据的类型继续划分,例如均继续划分出了4个类别。则该种例子中一共划分出了12个类别的io流量。仍然假设分布式存储系统的io栈中包括了7个流程,该种实施方式便可以得到7×12=84个耗时信息,每个耗时信息通常可以包括最小时延,最大时延,平均时延这三个项目。

还需要说明的是,前文的实施例中,利用io数据的大小,io数据的类型以及同时考虑大小和类型,实现了对获取的io流量的分流,从而分别进行耗时信息的统计,在其他实施方式中,还可以基于客户现场的io流特征,设定其他的多种分流方式,与前文实施例同理。

在本发明的一种具体实施方式中,在第一时长内获取的io流量大于预设的高峰期流量值;

高峰期流量值为通过以下步骤确定出的数值:统计分布式存储系统在运行n天时,每一天的流量高峰时段的io流量,并通过取平均值的方式确定出高峰期流量值。

该种实施方式中,考虑到客户的业务的又一特征是存在高峰期和低峰期,而分布式存储系统的性能瓶颈有时候只会在io流量特别大时才会凸显,因此,该种实施方式中,将在s102中获取到的用于进行后续的io性能分析的io流量设置地较大,即需要大于预设的高峰期流量值。高峰期流量值可以通过n天的流量高峰时段的io流量的平均值进行设定,当然,也可以根据实际需要,对确定出的平均值再进行一定的调整,例如再乘以一大于1的系数之后再作为预设的高峰期流量值,并不影响本发明的实施。

相应于上面的方法实施例,本发明实施例还提供了一种分布式存储系统的io性能分析系统,可与上文相互对应参照。

可参阅图2,为本发明中一种分布式存储系统的io性能分析系统的结构示意图,包括:

监控点设置模块201,用于在分布式存储系统的io栈的每一个流程中均设置监控点;

io流量获取模块202,用于获取客户端在预设的第一时长内发送的io流量;

分段式耗时信息确定模块203,用于通过设置的各个监控点,确定出io流量在每一个流程中的耗时信息,以通过确定出的各个耗时信息进行分布式存储系统的io性能分析。

在本发明的一种具体实施方式中,还包括:

第一分流模块,用于根据获取的io流量中的各个io数据的大小,将io流量进行分流,得到至少2个类别的io流量;

相应的,分段式耗时信息确定模块203,具体用于:

通过设置的各个监控点,针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

在本发明的一种具体实施方式中,还包括:

第二分流模块,用于根据获取的io流量中的各个io数据的类型,将io流量进行分流,得到写入操作类别,删除操作类别,修改操作类别以及读取操作类别,共4个类别的io流量;

相应的,分段式耗时信息确定模块203,具体用于:

通过设置的各个监控点,针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

在本发明的一种具体实施方式中,还包括:

第三分流模块,用于根据获取的io流量中的各个io数据的大小以及各个io数据的类型,将io流量进行分流,得到多个类别的io流量;

相应的,分段式耗时信息确定模块203,具体用于:

针对分流之后的每一类别的io流量,确定出该类别的io流量在每一个流程中的耗时信息。

在本发明的一种具体实施方式中,在第一时长内获取的io流量大于预设的高峰期流量值;

高峰期流量值为通过以下高峰期流量值计算模块确定出的数值:

高峰期流量值计算模块用于:统计分布式存储系统在运行n天时,每一天的流量高峰时段的io流量,并通过取平均值的方式确定出高峰期流量值。

相应于上面的方法和系统实施例,本发明实施例还提供了一种分布式存储系统的io性能分析设备和一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的分布式存储系统的io性能分析方法的步骤。这里所说的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。

可参阅图3,为一种分布式存储系统的io性能分析设备的结构示意图,包括:

存储器301,用于存储计算机程序;

处理器302,用于执行计算机程序以实现上述任一实施例的分布式存储系统的io性能分析方法的步骤。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1