一种IO测试方法、装置、设备及介质与流程

文档序号:17262915发布日期:2019-03-30 09:47阅读:239来源:国知局
一种IO测试方法、装置、设备及介质与流程

本发明涉及人工智能领域,特别是涉及一种io测试方法、装置、设备及介质。



背景技术:

人工智能是当前新型的技术,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的科学技术。

机器学习是人工智能的核心,其目的是使计算机模拟或实现人类的学习行为,以此获取新的知识或技能,并在已有的知识结构上不断改善对于事物的整体认知能力。深度学习是机器学习中一种基于对数据进行特征学习的方法。深度学习的目标学习对象可以以标本文件的方式来表示,以一幅图像为例,标本文件的内容可以是图像中每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等,而使用某些特定方式表示目标学习对象更容易达到计算机提取并学习目标学习对象的特征的目的。

如图1所示的,是当前实现深度学习所通常采用的设备拓扑结构,图1中的文件主机用于生成或接收深度学习所需的标本文件,并将标本文件存储至存储设备;多台任务主机则用于根据深度学习任务,在存储设备中读取相应的目标标本文件,并根据预设的学习逻辑对目标标本文件进行处理,进而将最终的结果存储至存储设备。由于深度学习的目的是建立、模拟人脑进行分析学习的神经网络,进而模仿人脑的机制来解释如图像,声音和文本等类型的数据,因此实现深度学习时,任务主机需要对大量的标本文件进行“读取”“记忆”“识别”,对于大量标本文件的io操作极易降低任务主机的工作稳定性,为了确保任务主机在实际业务场景下正常工作,技术人员需要预先获悉任务主机在执行深度学习任务过程中的io效率。

由此可见,提供一种io测试方法,以预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,确保任务主机在实际业务场景下工作的稳定性,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种io测试方法、装置、设备及介质,以预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,确保任务主机在实际业务场景下工作的稳定性。

为解决上述技术问题,本发明提供一种io测试方法,包括:

根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集;

通过负载测试工具控制目标任务主机对各测试数据集进行io操作,统计并生成相应的io测试结果。

优选的,内容特征具体为数据集中各标本文件的文件大小的取值分布。

优选的,目标任务主机的数量大于1;

相应的,通过负载测试工具控制目标任务主机对各测试数据集进行io操作具体为:

通过负载测试工具控制各目标任务主机以并行的方式对各测试数据集进行io操作。

优选的,在根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集之前,该方法进一步包括:

在目标文件主机中挂载目标存储设备的预设存储路径;

相应的,根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集具体为:

控制目标文件主机以根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,在预设存储路径中生成相同总量的具有相同内容特征各测试数据集;

相应的,在通过负载测试工具控制目标任务主机对各测试数据集进行io操作之前,该方法进一步包括:

在目标任务主机中挂载预设存储路径;

相应的,通过负载测试工具控制目标任务主机对各测试数据集进行io操作具体为:

通过负载测试工具控制目标任务主机对预设存储路径下的各测试数据集进行io操作。

优选的,在目标文件主机中挂载目标存储设备的预设存储路径具体为:

通过执行shell脚本的方式在目标文件主机中挂载预设存储路径;

相应的,在目标任务主机中挂载预设存储路径具体为:

通过执行shell脚本的方式在目标任务主机中挂载预设存储路径。

优选的,负载测试工具包括fio测试工具、vdbench测试工具以及iozone测试工具。

优选的,io测试结果的内容包括iops值、io带宽以及io延时。

此外,本发明还提供一种io测试装置,包括:

测试集生成模块,用于根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集;

测试执行模块,用于通过负载测试工具控制目标任务主机对各测试数据集进行io操作,统计并生成相应的io测试结果。

此外,本发明还提供一种io测试设备,包括:

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

处理器,用于执行计算机程序时实现如上述的io测试方法的步骤。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的io测试方法的步骤。

本发明所提供的io测试方法,首先根据实际场景下的深度学习业务的目标学习对象的数据集数量,生成与该数据集相同数量的测试数据集,并且各测试数据集中所包含的标本文件的内容特征与实际业务场景下目标学习对象的各数据集一致,进而通过负载测试工具控制目标任务主机对各测试数据集进行io操作,并统计生产相应的io测试结果。由于本方法根据实际使用场景下目标学习对象的数据集数量及其所包含标本文件的内容特征,对应生成相同数量且具有相同内容特征的测试数据集,因此将测试数据集作为任务主机的io操作对象,能够较大程度的还原任务主机在实际深度学习场景下的工作状态,进而利用该测试数据集对目标任务主机进行io性能测试,能够预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,相对确保了任务主机在实际业务场景下工作的稳定性。此外,本发明还提供一种io测试装置、设备及介质,有益效果同上所述。

附图说明

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

图1为当前实现深度学习所通常采用的设备拓扑结构;

图2为本发明实施例提供的一种io测试方法的流程图;

图3为本发明实施例提供的一种io测试装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种io测试方法,以预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,确保任务主机在实际业务场景下工作的稳定性。本发明的另一核心是提供一种io测试装置、设备及介质。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施例一

图2为本发明实施例提供的一种io测试方法的流程图。请参考图2,io测试方法的具体步骤包括:

步骤s10:根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集。

需要说明的是,计算机对目标学习对象进行深度学习往往是对该目标对象多个方面的特征点进行深度学习,每个特征点在深度学习的执行逻辑中均以数据集的形式体现以及使用,数据集中包含有与特征点相关的标本文件。由于不同的目标学习对象之间具有数量、内容各异的特征点,因此不同的目标学习对象所对应的数据集数量以及各数据集中标本文件的内容特征也存在一定的差异。本步骤中的内容特征可以具体是数据集中各标本文件所具有的文件大小的取值分布、数据集中各标本文件中数据的数据类型以及数据集各标本文件的关键数据字段等。

本步骤的重点在于,根据实际深度学习业务中目标学习对象的数据集数量以及各数据集中所含标本文件的内容特征,生成相应数量的测试数据集,以此在后续步骤中,基于测试数据集对目标任务主机进行io操作测试,能够最大程度还原目标任务主机在执行深度学习任务时的状态,确保测试结果具有参考价值。

步骤s11:通过负载测试工具控制目标任务主机对各测试数据集进行io操作,统计并生成相应的io测试结果。

本步骤中的负载测试工具可以预先安装于待测试的目标任务主机中,进而通过负载测试工具控制目标任务主机对测试数据集进行io操作,并统计生成相应的io测试结果。需要强调的是,由于本方法测试的是目标任务主机在深度学习业务中的io效率,而深度学习业务的主要目的是对目标学习对象进行完整的学习,因此在深度学习业务的执行过程中,目标任务主机需要对目标学习对象的全部数据集进行io操作,为了在测试时最大程度还原目标任务主机的工作内容,保证测试结果的准确性,本步骤中的目标任务主机应对全部的测试数据集进行io操作。

本发明所提供的io测试方法,首先根据实际场景下的深度学习业务的目标学习对象的数据集数量,生成与该数据集相同数量的测试数据集,并且各测试数据集中所包含的标本文件的内容特征与实际业务场景下目标学习对象的各数据集一致,进而通过负载测试工具控制目标任务主机对各测试数据集进行io操作,并统计生产相应的io测试结果。由于本方法根据实际使用场景下目标学习对象的数据集数量及其所包含标本文件的内容特征,对应生成相同数量且具有相同内容特征的测试数据集,因此将测试数据集作为任务主机的io操作对象,能够较大程度的还原任务主机在实际深度学习场景下的工作状态,进而利用该测试数据集对目标任务主机进行io性能测试,能够预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,相对确保了任务主机在实际业务场景下工作的稳定性。

实施例二

在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。

作为一种优选的实施方式,内容特征具体为数据集中各标本文件的文件大小的取值分布。

需要说明的是,对于不同类型的目标学习对象而言,其各数据集中标本文件的文件大小的取值分布往往不同,由于数据集中各标本文件的文件大小直接决定着目标任务主机在io操作时相应的工作强度,并且数据集中标本文件的文件大小取值分布决定着目标任务主机进行io操作时在不同工作强度之间的切换频率,因此是影响目标任务主机io性能的重要因素。本实施方式将数据集中各标本文件的文件大小的取值分布作为内容特征,依照深度学习业务中目标学习对象各数据集的内容特征生成相应数量的测试数据集,进而通过测试数据集对目标任务主机进行io测试,能够进一步确保测试的整体准确性。

需要解释的是,标本文件的文件大小取值分布,指的是不同文件大小的数据标本在数据集中的占比。例如,目标学习对象具体可以具有32个数据集,数据集的标本文件的文件大小取值分布具体可以是其中16个数据集为

10k~30k小文件,以5k大小递增,每个文件大小的标本文件占比20%;另外16个数据集为10k~200k文件,以5k大小递增,每个文件大小的标本文件占比5%。

此外,作为一种优选的实施方式,目标任务主机的数量大于1;

相应的,通过负载测试工具控制目标任务主机对各测试数据集进行io操作具体为:

通过负载测试工具控制各目标任务主机以并行的方式对各测试数据集进行io操作。

由于考虑到在实际的深度学习业务场景中,执行深度学习逻辑的目标任务主机的数量往往为多个,并且目标任务主机之间是以并行的方式对目标学习对象的数据集进行io处理,因此为了使测试环境进一步与实际的业务场景相吻合,本实施方式通过负载测试工具控制各目标任务主机以并行的方式对各测试数据集进行io操作,即在测试时,各目标任务主机并行对测试数据集进行io操作,与目标任务主机在实际的深度学习业务场景下工作机制相近,因此能够进一步提高测试的准确性。

此外,作为一种优选的实施方式,在根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集之前,该方法进一步包括:

在目标文件主机中挂载目标存储设备的预设存储路径;

相应的,根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集具体为:

控制目标文件主机以根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,在预设存储路径中生成相同总量的具有相同内容特征各测试数据集;

相应的,在通过负载测试工具控制目标任务主机对各测试数据集进行io操作之前,该方法进一步包括:

在目标任务主机中挂载预设存储路径;

相应的,通过负载测试工具控制目标任务主机对各测试数据集进行io操作具体为:

通过负载测试工具控制目标任务主机对预设存储路径下的各测试数据集进行io操作。

需要说明的是,本实施方式是在目标文件主机中挂载目标存储设备的预设存储路径,进而控制目标文件主机以根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,在预设存储路径中生成相同总量的具有相同内容特征各测试数据集,进而在目标任务主机中挂载预设存储路径,并通过负载测试工具控制目标任务主机对预设存储路径下的各测试数据集进行io操作,最终生成相应的io测试结果。

由于在深度学习业务中,数据集的标本文件数量较大,因此本实施方式通过目标文件主机生成测试数据集,能够相对减轻目标任务主机的运算压力;而将测试数据集生成于存储设备,目标任务主机仅需要访问存储设备即可获取到测试数据集,无需目标任务主机存储测试数据集,减轻了目标任务主机的存储压力。目标任务主机的性能开销基本仅用于对测试数据集的io操作,因此能够确保测试结果相对准确。

在上述实施方式的基础上,作为一种优选的实施方式,在目标文件主机中挂载目标存储设备的预设存储路径具体为:

通过执行shell脚本的方式在目标文件主机中挂载预设存储路径;

相应的,在目标任务主机中挂载预设存储路径具体为:

通过执行shell脚本的方式在目标任务主机中挂载预设存储路径。

需要说明的是,shell脚本是基于linux或unix命令,将各类命令预先放入到一个文件中得到的方便一次性执行的程序文件,由于编写shell脚本相比于其他编程方式而言具有更高的编写效率以及执行效率,因此本实施方式能够高效的执行目标任务主机以及目标文件主机对预设存储路径的挂载,进而相对提高了对目标任务主机进行io测试的整体效率。

此外,作为一种优选的实施方式,负载测试工具包括fio测试工具、vdbench测试工具以及iozone测试工具。

需要说明的是,iozone测试工具以及fio测试工具是测试iiops的高性能工具,能够支持多种不同的i/o引擎;vdbench测试工具是oracle编写的一款应用广泛的存储性能测试工具,既支持块设备的性能测试,也支持文件系统性能测试。vdbench兼容linux和windows的操作系统,具有较高的跨平台性。用户可以根据实际需求进行上述负载测试工具的选取,并且上述的负载测试工具均能够提供相对可靠的io测试支持,确保io测试的准确性。

此外,作为一种优选的实施方式,io测试结果的内容包括iops值、io带宽以及io延时。

需要说明的是,iops值、io带宽以及io延时是体现硬件设备io性能的关键指标,因此本实施方式将io测试结果的内容限定为iops值、io带宽以及io延时,能够相对确保io测试结果的全面性,用户能够更准确的获悉任务主机在深度学习场景下执行深度学习任务过程的io效率。

实施例三

在上文中对于io测试方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的io测试装置,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图3为本发明实施例提供的一种io测试装置的结构图。本发明实施例提供的io测试装置,包括:

测试集生成模块10,用于根据深度学习业务中目标学习对象的数据集的总量,以及各数据集中所包含的标本文件的内容特征,生成相同总量的具有相同内容特征各测试数据集。

测试执行模块11,用于通过负载测试工具控制目标任务主机对各测试数据集进行io操作,统计并生成相应的io测试结果。

本发明所提供的io测试装置,首先根据实际场景下的深度学习业务的目标学习对象的数据集数量,生成与该数据集相同数量的测试数据集,并且各测试数据集中所包含的标本文件的内容特征与实际业务场景下目标学习对象的各数据集一致,进而通过负载测试工具控制目标任务主机对各测试数据集进行io操作,并统计生产相应的io测试结果。由于本装置根据实际使用场景下目标学习对象的数据集数量及其所包含标本文件的内容特征,对应生成相同数量且具有相同内容特征的测试数据集,因此将测试数据集作为任务主机的io操作对象,能够较大程度的还原任务主机在实际深度学习场景下的工作状态,进而利用该测试数据集对目标任务主机进行io性能测试,能够预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,相对确保了任务主机在实际业务场景下工作的稳定性。

实施例四

本发明还提供一种io测试设备,包括:

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

处理器,用于执行计算机程序时实现如上述的io测试方法的步骤。

本发明所提供的io测试设备,首先根据实际场景下的深度学习业务的目标学习对象的数据集数量,生成与该数据集相同数量的测试数据集,并且各测试数据集中所包含的标本文件的内容特征与实际业务场景下目标学习对象的各数据集一致,进而通过负载测试工具控制目标任务主机对各测试数据集进行io操作,并统计生产相应的io测试结果。由于本设备根据实际使用场景下目标学习对象的数据集数量及其所包含标本文件的内容特征,对应生成相同数量且具有相同内容特征的测试数据集,因此将测试数据集作为任务主机的io操作对象,能够较大程度的还原任务主机在实际深度学习场景下的工作状态,进而利用该测试数据集对目标任务主机进行io性能测试,能够预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,相对确保了任务主机在实际业务场景下工作的稳定性。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的io测试方法的步骤。

本发明所提供的计算机可读存储介质,首先根据实际场景下的深度学习业务的目标学习对象的数据集数量,生成与该数据集相同数量的测试数据集,并且各测试数据集中所包含的标本文件的内容特征与实际业务场景下目标学习对象的各数据集一致,进而通过负载测试工具控制目标任务主机对各测试数据集进行io操作,并统计生产相应的io测试结果。由于本计算机可读存储介质根据实际使用场景下目标学习对象的数据集数量及其所包含标本文件的内容特征,对应生成相同数量且具有相同内容特征的测试数据集,因此将测试数据集作为任务主机的io操作对象,能够较大程度的还原任务主机在实际深度学习场景下的工作状态,进而利用该测试数据集对目标任务主机进行io性能测试,能够预先获悉任务主机在深度学习场景下执行深度学习任务过程的io效率,相对确保了任务主机在实际业务场景下工作的稳定性。

以上对本发明所提供的一种io测试方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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