一种分布式系统元数据性能测试方法、脚本及工具与流程

文档序号:12665556阅读:267来源:国知局
一种分布式系统元数据性能测试方法、脚本及工具与流程

本发明涉及分布式系统元数据性能测试技术领域,特别涉及一种分布式系统元数据性能测试方法、脚本及工具。



背景技术:

众所周知,分布式文件系统有元数据服务、数据服务和客户端三大组成部分。分布式文件系统对文件(包含目录)操作,首先会进行元数据IO,然后进行数据IO。这种操作流程就把元数据性能推到瓶颈点,特别是海量小文件IO场景,由于存储架构影响,元数据性能势必成为瓶颈点。分布式文件系统元数据性能可通过元数据集群并发性能来提升整个文件系统的元数据性能。一个分布式文件系统的元数据性能有多高,目前还没有统一的工具来测量元数据性能,另外文件系统提供的元数据性能上限是多少也没有工具来测量。

综上所述,如何测量分布式系统提供的元数据性能是本领域技术人员目前需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种分布式系统元数据性能测试方法、脚本及工具,可以准确测量分布式系统提供的元数据性能。其具体方案如下:

一种分布式系统元数据性能测试方法,包括:

向待测试客户端发送线程启动指令,得到测试线程;

向所述测试线程发送目录创建指令,得到测试目录;

向所述测试目录发送文件创建指令;

统计完成所述文件创建指令的时间;

用创建的文件数量除以所述时间,得到相应的性能数据。

优选的,所述待测试客户端包括单客户端、2个客户端、4个客户端、8个客户端或16个客户端。

优选的,所述测试线程启动指令包括单线程启动指令、双线程启动指令、4线程启动指令、8线程启动指令或16线程启动指令。

优选的,所述文件创建指令为在相应测试目录下调用open接口创建预设数量的文件。

优选的,所述文件为空文件。

本发明还公开了一种分布式系统元数据性能测试脚本,包括:

线程启动指令,用于在待测试客户端上启动测试线程;

目录创建指令,用于在所述测试线程上创建测试目录;

文件创建指令,用于在所述测试目录下创建文件;

时间统计指令,用于统计完成所述文件创建指令的时间;

性能数据计算指令,用于用创建的文件数量除以所述时间,得到相应的性能数据。

本发明还公开了一种分布式系统元数据性能测试工具,包括上述的分布式系统元数据性能测试脚本。

本发明公开了一种分布式系统元数据性能测试方法,包括:向待测试客户端发送线程启动指令,得到测试线程;向所述测试线程发送目录创建指令,得到测试目录;向所述测试目录发送文件创建指令;统计完成所述文件创建指令的时间;用创建的文件数量除以所述时间,得到相应的性能数据。可见,本发明依据多目录、多线程、多客户端思想,通过统计创建预设数量文件的创建时间,来计算测量分布式系统提供的元数据性能,最终可输出整个文件系统的最高元数据性能。

本发明还公开了一种分布式系统元数据性能测试脚本,具有与上述方法相同的技术效果,在此不再赘述。

本发明还公开了一种分布式系统元数据性能测试工具,具有与上述脚本相同的技术效果,在此不再赘述。

附图说明

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

图1为本发明实施例公开的一种分布式系统元数据性能测试方法的流程示意图;

图2为本发明实施例公开的一种分布式系统元数据性能测试脚本的结构示意图。

具体实施方式

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

本发明实施例公开了一种分布式系统元数据性能测试方法,参见图1所示,包括步骤S1至S5,其中:

步骤S1:向待测试客户端发送线程启动指令,得到测试线程。

分布式系统提供的元数据服务具体包括单客户端和多客户端,在实际应用中,多客户端包括2个客户端、4个客户端、8个客户端或16个客户端,当然根据具体需要,多客户端也可包括32个客户端或64个客户端。

当需要对多客户端的分布式系统提供的元数据服务相应的性能进行测试时,需要通过mpi并发工具调用客户端,调用的客户端即为待测试客户端。

步骤S2:向所述测试线程发送目录创建指令,得到测试目录。

分布式系统提供的元数据服务具体可分为:单客户端单线程数据服务、单客户端多线程数据服务、多客户端单线程数据服务和多客户端多线程数据服务。

需要说明的是,在实际应用中,多客户端包括2个客户端、4个客户端、8个客户端或16个客户端,当然根据具体需要,多客户端也可包括32个客户端或64个客户端。

需要进一步说明的是,在实际应用中,多线程包括2线程、4线程、8线程或16线程,,当然根据具体需要,多线程也可包括32线程或64线程。

因此,线程启动指令包括单线程启动指令、双线程启动指令、4线程启动指令、8线程启动指令或16线程启动指令。

步骤S3:向所述测试目录发送文件创建指令。

在一种具体的实施方案中,文件创建指令为在相应测试目录下调用open接口创建预设数量的文件。

此处的预设数量的可以根据实际需要进行设置,例如,在上述通过open接口创建预设数量文件的实施方案中,预设数量的文件可以为100000个空文件,当然也可以为其他数量的空文件。

需要说明的是,对于同一个分布式系统提供的元数据服务进行性能测试,若该测试包括:单客户端单线程、单客户端多线程、多客户端单线程和多客户端多线程中的至少2个,则创建的文件数量的总量应相同,例如,需要对单客户端单线程、单客户端2线程、4个客户端单线程和4个客户端双线程进行测试,则单客户端单线程创建100000个空文件,单客户端多线程创建100000个空文件、单客户端双线程中每个目录创建50000个空文件、4个客户端单线程中每个目录创建25000个空文件,4个客户端双线程中每个目录中创建12500个空文件,其中,4个客户端双线程指4个客户端每个客户端启动2个线程。

需要进一步说明的是,创建的文件可以为空文件,当然也可以创建预设的标准文件。

步骤S4:统计完成所述文件创建指令的时间。

对完成文件创建指令的全部时间进行统计。在上个例子中,在4个客户端双线程中每个目录中创建12500个空文件,由于不同线程中创建速度可能不同,因此统计时间应该在完成最后的12500个空文件创建任务的时间。

步骤S5:用创建的文件数量除以所述时间,得到相应的性能数据。

对于单客户端单线程的性能数据测试,即用创建的文件数量除以统计时间;对于单客户端多线程、多客户端单线程和多客户端多线程的性能数据测试,除了用创建的文件数量除以统计时间,还可对每个客户端每个线程进行统计,即用该线程中创建完成文件的数量除以该该线程中创建完成文件的时间。

本发明还公开了一种分布式系统元数据性能测试脚本,参见图2所示,包括线程启动指令11、目录创建指令12、文件创建指令13、时间统计指令14和性能数据计算指令15,其中:

线程启动指令11,用于在待测试客户端上启动测试线程。

分布式系统提供的元数据服务具体包括单客户端和多客户端,在实际应用中,多客户端包括2个客户端、4个客户端、8个客户端和16个客户端,当然根据具体需要,多客户端也可包括32个客户端和64个客户端。

当需要对多客户端的分布式系统提供的元数据服务相应的性能进行测试时,需要通过mpi并发工具调用客户端,调用的客户端即为待测试客户端。

目录创建指令12,用于在所述测试线程上创建测试目录。

分布式系统提供的元数据服务具体可分为:单客户端单线程数据服务、单客户端多线程数据服务、多客户端单线程数据服务和多客户端多线程数据服务。

需要说明的是,在实际应用中,多客户端包括2个客户端、4个客户端、8个客户端和16个客户端,当然根据具体需要,多客户端也可包括32个客户端和64个客户端。

需要进一步说明的是,在实际应用中,多线程包括2线程、4线程、8线程和16线程,,当然根据具体需要,多线程也可包括32线程和64线程。

因此,线程启动指令包括单线程启动指令、双线程启动指令、4线程启动指令、8线程启动指令、16线程启动指令。

文件创建指令13,用于在所述测试目录下创建文件。

在一种具体的实施方案中,文件创建指令为在相应测试目录下调用open接口创建预设数量的文件。

此处的预设数量的可以根据实际需要进行设置,例如,在上述通过open接口创建预设数量文件的实施方案中,预设数量的文件可以为100000个空文件,当然也可以为其他数量的空文件。

需要说明的是,对于同一个分布式系统提供的元数据服务进行性能测试,若该测试包括:单客户端单线程、单客户端多线程、多客户端单线程和多客户端多线程中的至少2个,则创建的文件数量的总量应相同,例如,需要对单客户端单线程、单客户端2线程、4个客户端单线程和4个客户端双线程进行测试,则单客户端单线程创建100000个空文件,单客户端多线程创建100000个空文件、单客户端双线程中每个目录创建50000个空文件、4个客户端单线程中每个目录创建25000个空文件,4个客户端双线程中每个目录中创建12500个空文件,其中,4个客户端双线程指4个客户端每个客户端启动2个线程。

需要进一步说明的是,创建的文件可以为空文件,当然也可以创建预设的标准文件。

时间统计指令14,用于统计完成所述文件创建指令的时间。

对完成文件创建指令的全部时间进行统计。在上个例子中,在4个客户端双线程中每个目录中创建12500个空文件,由于不同线程中创建速度可能不同,因此统计时间应该在完成最后的12500个空文件创建任务的时间。

性能数据计算指令15,用于用创建的文件数量除以所述时间,得到相应的性能数据。

对于单客户端单线程的性能数据测试,即用创建的文件数量除以统计时间;对于单客户端多线程、多客户端单线程和多客户端多线程的性能数据测试,除了用创建的文件数量除以统计时间,还可对每个客户端每个线程进行统计,即用该线程中创建完成文件的数量除以该该线程中创建完成文件的时间。

本发明还公开了一种分布式系统元数据性能测试工具,包括上述的分布式系统元数据性能测试脚本。

在具体实施方案中,使用NVDIMM介质作为元数据日志存储,能保证元数据不会丢失,客户端发送的元数据请求以日志的形式存储到NVDIMM中,元数据处理快,客户端能很快收到元数据消息响应。同时,使用SSD盘存储元数据,保证NVDIMM中log的处理速度。

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

以上对本发明所提供的一种分布式系统元数据性能测试方法、脚本及工具进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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