块级别存储系统性能测试工具的制作方法

文档序号:9631467阅读:512来源:国知局
块级别存储系统性能测试工具的制作方法
【技术领域】
[0001]本发明涉及根据来自真实存储系统的I/O记录,生成相同的I/O请求负载,以模拟运行环境的真实负载变化,从而达到对存储系统进行性能测试的块级别存储系统性能测试工具。
【背景技术】
[0002]近年来,数据爆炸性增长而计算能力迅速提高,I/O密集型的应用提出高带宽、低延迟的存储性能需求。块级别存储设备应用广泛,其上可以构建裸设备、文件系统、数据库、云存储等多种访问接口。因此,研制高性能的块级别存储系统一直是存储系统研究领域的一个热点。性能测试有助于确定影响存储系统性能的关键因素,从而可以有针对性地进行分析和改进;亦可用于比较不同的存储系统,为选取或购买存储系统提供参考。面对高容量存储设备,复杂的网络存储系统,以及多维度的应用需求,有必要推动现有存储系统测试评价技术,设计并实现可信、可靠、可重复的存储系统性能测试工具。
[0003]通常情况下,一个存储系统性能的好坏,主要通过它处理负载的能力来衡量。根据添加负载的真实程度和轻重情况的不同来划分,一般有三种方法可以实现。运行实际应用,即搭建真实的系统环境,添加用户所关心的真实的应用负载;生成人工合成负载,即针对系统的情况以及用户群体的需求等,来生成合成的负载,并向该系统播放;播放I/O记录,SP向存储系统播放已有的,得到公众认可的真实的负载。
[0004]存储系统性能测试的最准确方法是运行真正使用的应用程序。但是,应用程序往往难于配置,甚至由于涉密等原因而不可使用。而且当用户需求发生变化而重新测试时,需要修改应用,重新配置实验环境,使得该方法的复杂度明显提高。人工负载生成技术与trace重放同时具有实现复杂度低的优势,但是人工合成的负载不具有真实性,它依赖I/O负载生成程序并根据用户指定的参数配置,生成用户预期的负载。已有的I/O负载生成程序包括 TPC 基准测试程序,Postmark, 1zone,Bonnie, SPC,SPEC SFS,1meter 等。用人工负载生成工具来预测现实世界中系统的性能是具有挑战性的,而且配置和运行起来很复杂。trace重放技术提供了基于实际应用程序测试的一种替代方案。trace是在真实应用或者基准应用程序运行过程中记录的存储访问日志。给定某个应用程序的1/0记录,trace重放技术试图生成相同的1/0请求负载,以模拟运行环境的真实负载变化。trace重放技术的优点是负载有代表性且易于使用。
[0005]通过播放1/0记录的方式进行块级别存储系统性能测试,兼具运行实际应用的真实程度高和生成人工合成负载的实现难度低的双重优势,即负载真实具有代表性,且不需要配置参数,运行起来简单方便。但是,已有的1/0记录重放工具缺乏简单而精确地重现1/0负载的能力,容易给存储系统性能指标观测值带来显著误差。

【发明内容】

[0006]针对现有技术中的问题,本发明提供一种测试工具,根据来自真实存储系统的1/0记录,生成相同的I/O请求负载,以模拟运行环境的真实负载变化,进而达到对存储系统进行性能测试的目的。
[0007]为实现以上技术目的,本发明的技术方案是:本发明1mark根据来自真实存储系统的I/O记录,生成相同的I/O请求负载,以模拟运行环境的真实负载变化,进而达到对存储系统进行性能测试的目的。如附图1所示,1mark由五个功能器件组成,包括I/O记录读取器、I/O请求控制器、I/O发射器、结果收集器和结果分析器。
[0008](1) I/O记录读取器负责将trace文件中的I/O记录读取出来,每条I/O记录的内容一般包括:盘号、开始字节、访问的字节总数、请求开始时间。
[0009](2) I/O请求控制器主要有三个功能,控制负载的轻重,跟踪I/O记录的状态和控制I/O记录的发送时间。(3) I/O发射器负责将I/O请求以异步的方式提交出去,交给系统去处理。
[0010](4)结果收集器在播放I/O记录过程中,查看I/O读写的状态,如果I/O读写完成,则将性能测试的结果数据收集到结果文件中。
[0011](5)结果分析器在测试结束后,按照测试人员的要求将结果文件中的数据进行统计和分析,采用累计分布函数(cumulative distribut1n funct1n, CDF)、分段求均值等统计方法,获得方便评价存储系统性能的数据,避免数据量过大造成性能评价结果不直观以及存在信息噪声等问题。
[0012]从以上描述可以看出,本发明具备以下优点:本发明1mark根据来自真实存储系统的1/0记录,生成相同的1/0请求负载,以模拟运行环境的真实负载变化,进而达到对存储系统进行性能测试的目的。如附图1所示,1mark由五个功能器件组成,包括1/0记录读取器、1/0请求控制器、1/0发射器、结果收集器和结果分析器。
[0013](1) 1/0记录读取器负责将trace文件中的1/0记录读取出来,每条1/0记录的内容一般包括:盘号、开始字节、访问的字节总数、请求开始时间。
[0014](2) 1/0请求控制器主要有三个功能,控制负载的轻重,跟踪1/0记录的状态和控制1/0记录的发送时间。(3) 1/0发射器负责将1/0请求以异步的方式提交出去,交给系统去处理。
[0015](4)结果收集器在播放1/0记录过程中,查看1/0读写的状态,如果1/0读写完成,则将性能测试的结果数据收集到结果文件中。
[0016](5)结果分析器在测试结束后,按照测试人员的要求将结果文件中的数据进行统计和分析,采用累计分布函数(cumulative distribut1n funct1n, CDF)、分段求均值等统计方法,获得方便评价存储系统性能的数据,避免数据量过大造成性能评价结果不直观以及存在信息噪声等问题。
【附图说明】
[0017]图1是本发明的块级别存储系统性能测试工具的结构示意图。
【具体实施方式】
[0018]根据附图1所述,一种块级别存储系统性能测试工具,包括1/0记录读取器、1/0请求控制器、1/0发射器、结果收集器和结果分析器,1/0记录读取器将trace文件中的1/0记录读取出来,每条I/O记录的内容包括:盘号、开始字节、访问的字节总数、请求开始时间;1/0请求控制器有三个功能,控制负载的轻重,跟踪I/O记录的状态和控制I/O记录的发送时间;1/0发射器负责将I/O请求以异步的方式提交出去,交给系统去处理;结果收集器在播放I/O记录过程中,查看I/O读写的状态,当I/O读写完成,则将性能测试的结果数据收集到结果文件中。
[0019]1、I/O请求控制
[0020]1.1负载轻重控制
[0021]1mark通过筛选盘号来控制负载的轻重。从trace文件中读取的每条I/O记录的目标设备是用盘号标记的,而盘号的分布是不均匀的。1mark通过选择带有某个或某些盘号的I/O记录进行播放来控制负载的轻重。
[0022]1.2记录I/O请求状态
[0023]1mark使用循环队列记录I/O请求的状态信息。该队列不遵守先进先出规则,用来存储一些基本信息。比如,在I/o请求发射之后记录发射时间,用于I/O完成后统计I/O延迟时间。在播放I/O记录进行测试之前,1mark为循环队列预分配内存空间。在整个测试过程中,循环队列反复使用。当性能测试完成之后,再将申请的内存空间释放。
[0024]1mark使用占用标识来表示队列项是否正被使用。当一个I/O操作开始之前,在循环队列中循环查找一个空闲的数组项,并将该项的占用标识置1。当某个1/0操作完成后,从b1结构体的数据项找到对应的数组项,并将该数组项的占用标识置0。
[0025]2、1/0请求发射
[0026]2.1发射时间的控制
[0027]理论上,向系统发送1/0请求的发送时间应该为1/0记录中的请求时间。但是,当trace文件中某一时间段的1/0记录数量巨大时,发送1/0请求的速度会大于系统处理1/0请求的速度,使得请求时间不一定恰好为发送时间。当请求时间大于当前时间时,线程需要睡眠一段时间,直至当前时间增长到请求时间;相反,当请求时间小于当前时间时,则产生了延迟,1mark立刻将该1/0请求发射出去。
[0028]2.21/0请求的发射方式
[0029]1/0记录读取器读取负载信息,通过1/0请求控制器进行相应的控制。最后是由I/o发射器负责将1/0记录发射出去。本文采用内核态异步1/0的访问方式来处理1/0请求,将I/o请求提交之后,不需要等待1/0读写操作完成。这样,1/0记录读取器、1/0请求控制器和I/O发射器不断循环执行,不停地向系统提交1/0请求。1/0请求发射之后,linux内核的底层通过一系列的系统调用,实现对磁盘的读写操作。
[0030]以上对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。以上对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
【主权项】
1.一种块级别存储系统性能测试工具,包括I/O记录读取器、I/O请求控制器、I/O发射器、结果收集器和结果分析器,I/o记录读取器将trace文件中的I/O记录读取出来,每条I/O记录的内容包括:盘号、开始字节、访问的字节总数、请求开始时间;1/0请求控制器有三个功能,控制负载的轻重,跟踪I/O记录的状态和控制I/O记录的发送时间;1/0发射器负责将I/O请求以异步的方式提交出去,交给系统去处理;结果收集器在播放I/O记录过程中,查看I/O读写的状态,当I/O读写完成,则将性能测试的结果数据收集到结果文件中。
【专利摘要】本发明涉及根据来自真实存储系统的I/O记录,生成相同的I/O请求负载,以模拟运行环境的真实负载变化,从而达到对存储系统进行性能测试的块级别存储系统性能测试工具,包括I/O记录读取器、I/O请求控制器、I/O发射器、结果收集器和结果分析器,I/O记录读取器将trace文件中的I/O记录读取出来,每条I/O记录的内容包括:盘号、开始字节、访问的字节总数、请求开始时间;I/O请求控制器有三个功能,控制负载的轻重,跟踪I/O记录的状态和控制I/O记录的发送时间;I/O发射器负责将I/O请求以异步的方式提交出去,交给系统去处理;结果收集器在播放I/O记录过程中,查看I/O读写的状态,当I/O读写完成,则将性能测试的结果数据收集到结果文件中。
【IPC分类】G06F11/22
【公开号】CN105389237
【申请号】CN201510939261
【发明人】葛春
【申请人】江苏辰云信息科技有限公司
【公开日】2016年3月9日
【申请日】2015年12月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1