一种对存储设备进行性能测试的方法及装置的制作方法

文档序号:6586529阅读:113来源:国知局
专利名称:一种对存储设备进行性能测试的方法及装置的制作方法
技术领域
本发明涉及测试技术领域,特别是涉及一种对存储设备进行性能测试的方法及装置。
背景技术
存储设备在实际应用中会面临纷繁复杂的应用场景,因此,需要针对各种应用场 景对存储设备进行性能测试,否则,在实际使用中可能暴露出一些性能问题,如响应时间过 长、IOPS(IA) per second,每秒进行读写操作的次数)低于测试值导致可服务的用户数小 于预期等问题。 通常,可以使用压力测试工具(如LoadR皿ner等),对存储设备的性能进行测试。 但是,压力测试工具是在搭建真实系统的基础上在协议层模拟虚拟用户行为,需要搭建真 实业务环境,每个用户需要对应一台主机,各用户在各自的主机上对存储设备发起操作,如 4台主机+ —台存储设备,中间通过交换机组网,该方案成本较高不易实施。
为了解决上述问题,现有技术中出现了针对特殊场景开发的专用业务模拟工具, 例如针对文件系统的测试开发的IOzone、 Postmark等工具,针对视频播放场景开发的工 具,针对数据库场景开发的Orion等工具,等等。这些工具无须搭建真实的业务环境,能够 在一台主机上模拟多个用户的操作,实现在特定的应用场景下对存储设备的性能进行测 试。然而,每种工具都只能在特定的应用场景下使用,可扩展性低。例如,针对小文件测试 开发的工具,不能应用于测试大文件。而且,真实的业务常常是混合的,例如,视频点播业务 通常包含数据库查询、视频播放、快进等业务的混合,这种专门针对特定应用场景的工具无 法实现在混合业务场景下的测试。

发明内容
本发明实施例提供一种对存储设备进行性能测试的方法及装置,能够实现不同业 务场景下对存储设备的测试,实现混合业务场景下的测试。
为实现上述目的,本发明实施例提供了如下方案
—种对存储设备进行性能测试的方法,包括
读取预置的配置文件; 根据所述配置文件指定的虚拟用户的操作行为信息,创建虚拟用户,并生成与所 述虚拟用户对应的操作请求; 按照所述配置文件中指定的调度方式,将所述操作请求发送到资源池,所述资源 池用于保存存储设备中保存的数据的数据索引,其中,所述数据索引的类型与所述虚拟用 户访问的数据类型对应; 基于所述操作请求及所述虚拟用户访问的数据类型,将各虚拟用户与所述资源池 中对应的数据索引通过端口建立连接,并触发各虚拟用户对所连接的数据索引对应的数据 执行相应的操作;
获取并记录操作过程中产生的性能信息。
—种对存储设备进行性能测试的装置,包括
配置文件读取模块,用于读取预置的配置文件; 操作请求产生模块,用于根据所述配置文件指定的虚拟用户的操作行为信息,创 建虚拟用户,并生成与所述虚拟用户对应的操作请求; 操作请求调度模块,用于按照所述配置文件中指定的调度方式,将所述操作请求 发送到资源池;所述资源池用于保存存储设备中保存的数据的数据索引,其中,所述数据索 引的类型与所述虚拟用户访问的数据类型对应; 操作执行模块,用于基于所述操作请求及所述虚拟用户访问的数据类型,将各虚 拟用户与所述资源池中对应的数据索引通过端口建立连接,并触发各虚拟用户对所连接的 数据索引对应的数据执行相应的操作; 性能信息获取模块,用于获取并记录操作过程中产生的性能信息。 根据本发明提供的具体实施例,本发明实施例具有以下优点 本发明基于ACA架构,通过JSim建立了模拟存储设备应用场景的软件框架,使得
操作请求的调度过程变得可以控制,因此,可以模拟用户在各种业务场景下对各种数据的
操作请求,因此,可以实现不同业务场景下对存储设备的测试。同时,能够混合业务场景下,
对存储设备的测试。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图 获得其他的附图。
图1是本发明实施例提供的对存储设备进行性能测试的软件框架示意图;
图2是本发明实施例提供的方法的流程图;
图3是本发明实施例提供的另一方法的流程图;
图4是本发明实施例提供的装置的示意图;
图5是本发明实施例提供的另一装置的示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的 范围。 本发明实施例根据ACA架构(autonomous Component Architecture,自治组件架 构)禾口 JSim (Java-Based simulation and animationenvironment),建立模拟存储设备应 用场景的软件框架,为了便于理解,下面首先对ACA架构及JSim进行简要的介绍。
在ACA架构中,整个软件系统由多个组件(component)组成,每个组件存在多个端 口 (port),各个组件之间可以通过端口通信,通信方式可以采用自定义的协议。端口与端口之间可以通过线(wire)来连接,组件可以按照规定协议,通过wire把信息传递到对端组 件。 JSim是一款用Java语言实现ACA架构的用于模拟业务的框架,它详细定义了 component、port等的实现细节以及对于多线程的处理。同时增加了运行时组件(Runtime: 线程的组合)来接管组件之间wire上的数据流,然后进行转发。 基于上述ACA架构及JSim,本发明实施例提供了对存储设备进行性能测试的软件 框架,例如,在一个具体的实例中,本发明实施例提供的软件框架可以包括以下五大部分 用户(User)、用户群组(User Group)、虚拟机(VitrualMachine)、资源(Resource)、监控 (Monitor),其中,资源(Resource)包含资源代理(Resource Agent)禾口资源池(Resource Pool),如图1所示,其为本发明实施例提供的对存储设备进行性能测试的软件框架示意 图。 其中,User模块是对业务场景下用户访问存储设备行为(读、写、播放、快进、重放 等)的抽象,同时也包含对存储设备访问行为的统计;其中,每个User模块对应一个虚拟用 户,可以通过User模块虚拟出真实用户对存储设备的访问行为,代替真实用户执行对存储 设备的访问;可以根据测试所需的场景确定需要的User类型、数目及操作行为,其中,User 模块访问不同类型的数据时,对应不同的User类型,例如当User模块访问File(文件) 时,User类型为第一类型,当User模块访问Media (多媒体)时,User类型为第二类型,数 目与数据的数目对应表示User的数目,操作行为可以包括访问方式、速率、时长等。在测 试开始时就可以创建相应的User模块,每个User模块可以具有唯一的标识,用于区分各个 User模块;在测试结束后还可以将User模块收回并销毁。其中,"收回并销毁"是面向对象 语言的一种软件机制,通俗地讲,收回是指软件辨识出不再使用的对象(Object),销毁是指 从内存中将这些对象清除掉,释放其所占用的内存空间。其中,在本发明实施例中,该对象 就是指所创建的虚拟用户,也就是说,在测试结束之后,可以清理User模块并释放User模 块占用的内存空间。 对存储设备访问行为的统计是指,在测试过程中,统计用户的访问行为,例如,当 前ls内,同时有多少user进行播放等等,统计的结果可以作为一种性能测试信息。
User Group模块是对用户群体行为的抽象,负责维护具有相同行为的用户组, User Group由单个User的集合构成;其中,User Group是根据不同的业务场景预先划分好 的,例如,需要在文件系统场景、视频点播场景及数据库场景中对存储设备进行测试,则可 以在创建了各种类型的User后,将相同类型的User组成一个User Group,如果User的类 型也是有三种,则最终将会组成三个User Group。每个User Group可以根据配置信息为组 内的各User产生操作请求信息,还可以触发组内的各User执行相应的操作。
Virtual Machine是操作请求的调度器,负责模拟实际业务中的请求调度算法。它 利用JSim的Runtime机制维护一个线程池,根据从配置文件中读取到的业务调度方式对用 户请求进行调度;也就是说,在本发明实施例中,调度方式也是可以在配置文件中指定的, 例如,可以指定采用先到先服务的调度方式或基于优先级的调度方式,Virtual Machine会 按照配置文件指定的调度方式对用户请求进行调度;需要说明的是,Virtual Machine在对 操作请求信息进行调度时,是将操作请求信息发送到Resource模块,也就是说,可以将各 个User的信息操作请求信息,按照配置文件中配置的调度方式,发送到Resource模块,先发送到Resource模块的操作请求信息将会先获得响应。 Resource模块承担了真实业务中的数据管理和1/0操作的工作。它的前端是一个 资源代理模块(Resource Agent),负责将各User的操作请求与实际需要操作的数据索引 进行连接,User根据该连接,就可以知道需要对哪个数据执行操作;连接建立后即可释放 Resource Agent占用的内存空间。 Resource模块还负责维护资源池(Resource Pool)的信息,资源池按照读写访问 方式不同可以被划分为File(文件)、Media(多媒体)和Database (数据库)三种类型。处 于资源池中不同类型的数据索引分别维护着存储设备中当前保存的数据的描述信息和对 应的1/0操作方法。当操作请求到达资源池时,Resource模块发起针对存储设备的1/0操 作,产生1/0负载;需要说明的是,由于需要测试的存储设备的性能,因此,真正的数据保存 在存储设备中,资源池中保存的是各数据索引,即通过资源池中的数据索引信息可以找到 存储设备中的数据;其中,存储设备中的数据可以是在进行测试时创建的,在创建数据的同 时,将数据的位置、类型等信息保存在资源池中即可;如果存储设备中已经保存有数据,则 可以获取各数据的类型、位置等信息,保存在资源池中即可。另外,对一个存储设备测试结 束后,资源池中关于该存储设备的数据索引也将被删除,以便对其他的存储设备进行测试; 或者,也可以将资源池的信息记录到某文件中,这样,下次需要对已经测试过的存储设备进 行测试时,就可以不必再重新获取该存储设备的数据类型、位置等信息,直接从文件中读取 即可。总之,当前被测试的存储设备中的数据与资源池中的数据索引可以保持一一对应的 关系。 Monitor模块负责对整个模拟环境中的业务状况和存储设备性能状况进行监控,
并输出监控结果,可以实时反馈操作过程中出现的故障。 下面对本发明实施例提供的方法的具体流程进行详细地描述。 参见图2,本发明实施例提供的对存储设备进行性能测试的方法包括以下步骤 S201 :读取预置的配置文件; 配置文件中包括调度方式、用户组、用户数目、用户对数据的访问方式、访问速率、 测试时长、数据的数目、类型、位置等信息。在具体实现时,一个业务场景对应一个配置文 件,如果需要在多个业务场景下进行测试,则可以分别准备多份配置文件。
S202:根据所述配置文件指定的虚拟用户操作行为信息,创建虚拟用户,生成与所 述虚拟用户对应的操作请求; 配置文件中配置了 User及对应的操作行为信息,User Group根据这些信息就可
以分别为各个User产生相应的操作请求。其中,这里的操作行为信息可以包括访问方式、
速率、时长等。需要说明的是,该步骤中,仅仅是明确了各个User对应的操作请求,但是
User并不会自动发起该操作请求,关于具体如何发起,下文会有详细地介绍。 S203 :按照所述配置文件中指定的调度方式,将所述操作请求发送到资源池,所述
资源池用于保存存储设备中保存的数据的数据索引,其中,所述数据索引的类型与所述虚
拟用户访问的数据类型对应; 如前文所述,步骤S202中为每个用户产生了操作请求,该步骤S303就是要将各用 户的操作请求,按照指定的调度方式发送到资源池。 本发明实施例中,测试工具可以通过一个专门的调度模块,对用户的访问请求进行调度,因此,测试工具能够对进程调度方式进行控制,进而能够实现在同一测试工具中对 多种不同的业务场景以及综合业务场景进行模拟。 其中,由于在真实业务场景下调度方式是已知的,比如,如果访问一个流媒体的网 站,而所有的用户都是同一优先级,此时应该采取先到先服务的调度方式;在视频监控领 域中,系统管理员的优先级高于普通用户,则应该采用优先响应高优先级的调度方式。因 此,在本发明实施例中,针对各种业务场景,就可以在配置文件中指定调度方式,Virtual Machine可以按照指定的调度方式,调度各用户的访问请求,而不会受到操作系统所采用的 调度方式的限制以便支持多种业务场景。 其中,数据索引的类型与虚拟用户访问的数据类型对应,例如当虚拟用户访问 File(文件)时,数据索引的类型为第一类型,当虚拟用户访问Media(多媒体)时,数据索 引的类型为第二类型。 其中,User在对所连接的数据索引发起操作请求时,也是按照配置文件中指定的 操作行为信息进行的,例如,在User以512KB的块大小读某文件10分钟后,触发该User以 256KB的块大小读某文件20分钟,等等。 S204:基于所述操作请求及所述虚拟用户访问的数据类型,将各虚拟用户与所述 资源池中对应的数据索引通过端口建立连接,并触发各虚拟用户对所连接的数据索引对应 的数据执行相应的操作; 操作请求中携带有数据类型信息,将各User与对应的数据索引通过端口建立连 接之后,User才可以知悉需要对该数据索引对应的数据进行读写等操作。真正发起操作之 后,就可以使得存储设备产生I/O负载,以便测试存储设备的性能。 如前文所述,各种类型的数据保存在存储设备中,资源池中保存的是数据在存储 设备中的路径等信息。根据配置文件获知所需类型及数目的数据之后,可以首先查询资源 池,判断所述存储设备中是否保存有对应的数据,如果数据充足,则直接将各用户与对应的 数据索引通过端口建立连接;否则,如果所述存储设备中没有对应的数据,或者该类型数据 的数目不够,则可以在存储设备中创建该类型的数据,同时,在资源池中记录新创建的数据 在存储设备中的位置等信息,生成各数据的数据索引,以便通过资源池中的数据索引能够 链接到存储设备中具体的数据;然后,将各虚拟用户与对应的数据索引通过端口连接起来 即可。 其中,由于虚拟用户可能有多个,数据索引也可能有多条,因此,在具体将某虚拟 用户与数据索引建立连接时,可以首先按照该虚拟用户的类型找到该类型的数据索引,由 于该类型的数据索引也可能有多条,此时,可以采用随机选择或顺序选择等方式来建立所 述连接。例如,在随机方式下,对于某个类型虚拟用户,在该类型的数据索引中随机选择一 个,与之建立连接即可,该类型中的其他虚拟用户也是一样,即每个虚拟用户连接的数据索 引都是在该类型的数据索引中随机选择的。在顺序选择的方式下,由于数据索引可能是按 顺序保存在资源池中的,因此,可以根据连接建立的先后顺序,按数据索引的序列号顺序进 行选择;例如,对于某类型的数据索引的序列号为1到20,则从序列号为1的数据索引开 始与虚拟用户建立连接,当然也可以采用其他的顺序,例如从序列号为20的数据索引开始 等。关于创建数据的具体方法,本领域技术人员可以参照现有技术中的实现方案进行,这里 不再赘述。
在将各虚拟用户与对应的数据索引通过端口连接起来之后,就可以触发各虚拟用 户对所述连接的数据索引执行相应的操作,当操作请求到达资源池中的数据索引后,资源 池可以发起针对存储设备中相应数据的操作,使得存储设备产生I/O负载,以便测试存储 设备的性能。 S205 :获取并记录操作过程中产生的性能信息。
其中,性能信息包括 Resource模块的带宽(存储设备单位时间处理数据的总量,单位是MBPS);或者, 响应时间( 一个I/O从主机发给存储到完成对其处理所耗费的时间); 事务数信息(操作过程中每秒读写的次数);或者, User Group模块统计的类型(文件操作、视频点播等);或者, 操作次数(进行播放、快进、读写、创建文件等操作的次数)。 其中,由于Resource模块中的数据索引与存储设备中的数据是一一对应的, Resource模块相当于是存储设备的映像,用户对存储设备的所有访问请求都是通过 Resource模块实现的,因此,Resource模块的带宽、响应时间、事物数信息,就反映了存储 设备的带宽、响应时间、事物数信息。需要说明的是,事务数与操作次数是有所区别的,每 一次读、写都叫做一次事务,因此,事务数是指每秒读写的次数;操作次数是指进行播放、快
进、读写、创建文件等操作的次数,其中一次操作可能对应多次读写(如创建文件的操作可
能对应多次读写),但是对于操作次数而言,仅统计为一次。并且,在本发明实施例中,事务
数是由Resource模块统计的,操作次数是由User Group模块统计的。 存储设备是指任意可以保存数据并保证有效访问的介质,在本发明实施例中可以
指磁盘阵列。 本发明实施例中,通过调度层以及各个具体模块的划分,可以度量测试工具的仿 真程度,具体的,可以将各个模块的实现与真实场景相比较,从而评估整个系统的仿真程 度。例如对流媒体的操作,可以从用户数量、在一定时间段内各种用户操作占总用户操作的 比例、系统对用户操作的调度模式、以及最终系统的响应分别与真实业务场景进行对比。对 比采用的方式包括均值检验、方差分析、一致性检验等方式。根据实际测试比较结果,文件 系统、媒体服务等仿真程度均达到80%以上,仿真准确度高。 在实际应用中,可以将本发明实施例提供的软件安装在某主机上,然后将需要测 试的存储设备也连接到该主机上,写好配置文件并运行该软件后,就可以自动完成对存储 设备的性能测试,并实时显示出测试信息的结果供分析使用。 为了更好地理解本发明实施例提供的技术方案,下面结合各个模块对本发明实施
例提供的方法的具体流程进行更为详细地描述。 参见图3,具体的流程包括以下步骤 S301 :根据待测试的业务场景,生成配置文件; S302 :程序读取指定配置文件,向Resource Agent发出访问指定类型数据的命 令; S303 :如果存储设备中没有对应的数据时,创建对应的数据; S304 :User Group模块根据配置指定的访问方式、速率等信息控制User产生对应 的操作请求,请求信息发送至Virtual Machine ;
9
S305:Virtual Machine按照配置文件中指定的调度方式,调度各个用户的操作请 求,发送至Resource Agent ; S306 :Resource Agent将对应请求按照数据类别分发至对应的ResourcePool ;
S307 :Resource Pool按照指定方式选择对应的数据索引(例如随机选择或顺序 选择等方式),并将该数据索引与对应的User通过Port连接到一起,同时将User标识号与 User类型反馈给Resource ;由于User可以分类创建,同时,Resource Pool中的数据索引 也可以分别对应不同类型的数据,而Resource Pool又能够根据User的类型,将User与对 应的数据索引建立连接,并且,该User与该数据索引会一直保持连接状态,直到完成对该 数据索引对应的数据的操作,才可能会断开连接。因此,各个User之间互不干扰,可以按照 各自的访问模型进行操作。所以通过这一步,不同的User可以同时对不同的数据按照不同 的访问模型进行操作,即,在同一时刻可以对不同类型的数据按照不同的访问模型发起操 作请求,因此,可以实现在混合型业务场景中的测试。 S308 :User Group根据配置文件中的操作方式(如播放、快进、快退等)、时间间隔 等信息,控制User对所连接的数据索引对应的数据发起操作请求; 需要说明的是,如果要模拟某种场景下User对数据的一系列连续操作,例如一个 用户在播放视频10分钟后快进1分钟、然后再继续播放5分钟,可以在配置文件中分别用 三条记录体现,第一条配置一个用户进行十分钟的播放,第二条配置一个用户延迟10分钟 后进行1分钟的快进操作,第三条配置一个用户延迟11分钟后进行5分钟的播放。利用这 种方式就能够达到模拟连续操作的目的了 。 其中,所有用户对数据的请求都通过Virtual Machine按照配置文件中的调度方 式进行调度;每次调度后Resource与User Group模块将访问所产生的性能信息统计并发 送至Monitor。由于Virtual Machine仿真了各种数据的不同用户请求调度模式,因此可以 达到很高的仿真程度。Monitor负责统计系统性能信息并将其打印到控制台,或同时记录到 日志中,以供观察获取到的性能信息。这些性能信息包括用户请求的类型、次数、数据的操 作模式、操作耗时、带宽、事务数等。 S309 :测试时间到后结束测试,User Group负责回收User并销毁,下次测试时,可
以再重新创建各种所需的User。 Resource模块根据配置文件中的不同方式,可以选择销毁
资源池中的数据索引,或者将资源池信息记录到文件中,留待下次测试时使用。 存储设备是指任意可以保存数据并保证有效访问的介质,在本发明实施例中可以
指磁盘阵列。 总之,本发明实施例提供的软件框架可重复用于模拟多种应用场景,而不需要对 框架进行大幅度修改或针对单个应用场景开发不同的工具,因此,可扩展性强。并且,使用 Virtual Machine多线程调度机制模拟实际业务中的请求调度算法对存储设备进行操作, 仿真真实度高。 与本发明实施例提供的对存储设备进行性能测试的方法相对应,本发明实施例还 提供了一种对存储设备进行性能测试的装置,参见图4,该装置包括
配置文件读取模块401,用于读取预置的配置文件; 操作请求产生模块402,用于根据所述配置文件指定的虚拟用户的操作行为信息, 创建虚拟用户,并生成与所述虚拟用户对应的操作请求;
10
操作请求调度模块403,用于按照所述配置文件中指定的调度方式,将所述操作请 求发送到资源池;所述资源池用于保存存储设备中保存的数据的数据索引,其中,所述数据 索引的类型与所述虚拟用户访问的数据类型对应; 操作执行模块404,用于基于所述操作请求,将各虚拟用户与所述资源池中对应的 数据索引通过端口建立连接,并触发各虚拟用户对所连接的数据索引对应的数据执行相应 的操作; 性能信息获取模块405,用于获取并记录操作过程中产生的性能信息。 例如,在前文所述的具体实例中,User相当于该装置中的虚拟用户,该装置中的操
作请求产生模块402的功能可以由User Group完成,该装置中的操作请求调度模块403的
功能可以由Vitrual Machine完成,该装置中的操作执行模块404的功能可以由Resource
及User Group完成;最后,性能信息获取模块405可以由Monitor完成。 其中,参见图5,操作执行模块404可以包括 连接建立子模块5041,用于如果所述存储设备中保存有对应的数据时,将各虚拟 用户与资源池中对应的数据索引通过端口建立连接;否则,在所述存储设备中创建对应及 数目的数据,在所述资源池中保存所述创建的数据在所述存储设备中的数据索引,并将各 虚拟用户与对应的数据索引通过端口建立连接; 触发子模块4042,用于触发各虚拟用户对所连接的数据索引执行相应的操作。
性能信息获取模块405可以包括 第一获取子模块4051,用于当操作执行模块触发各虚拟用户对所连接的数据索引 对应的数据执行相应的操作时,获取操作占用的带宽;或者, 第二获取子模块4052,用于当操作执行模块触发各虚拟用户对所连接的数据索引 对应的数据执行相应的操作时,获取该操作的响应时间;或者, 第三获取子模块4053,用于获取事务数信息,所述事务数信息用于指示各虚拟用
户对所连接的数据索引对应的数据执行相应的操作过程中的读写次数;或者, 第四获取子模块4054,用于获取操作请求产生模块产生的操作请求的类型;或
者, 第五获取子模块4055,用于获取操作请求产生模块产生的操作请求的操作次数。
由于User模块通常是根据具体的测试需要创建的,因此在进行完一次测试之后, 此次创建的User模块可能不再有用,此时,可以将这些User模块收回并销毁,以避免占用 过多的内存空间。相应的,该装置还可以包括 虚拟用户管理单元406,用于测试结束后,识别出不再使用的虚拟用户对象,并释 放所述不再使用的虚拟用户对象占用的内存空间。 为了便于对其他的存储设备进行测试,或者对测试过的存储设备进行重复测试, 该装置还可以包括 资源管理单元407,用于测试结束后,销毁资源池中的数据索引,或者,将资源池信 息记录到文件中。 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中, 该程序在执行时,包括如下步骤读取预置的配置文件;根据所述配置文件指定的虚拟用户及操作行为信息,创建虚拟用户,并生成与所述虚拟用户对应的操作请求;按照所述配置文件中指定的调度方式,将所述操作请求发送到资源池;所述资源池用于保存存储设备中保存的数据的数据索引,其中,所述数据索引的类型与所述虚拟用户访问的数据类型对应;基于所述操作请求,将各虚拟用户与所述资源池中对应的数据索引通过端口建立连接,并触发各虚拟用户对所连接的数据索引对应的数据执行相应的操作;获取并记录操作过程中产生的性能信息。所述的存储介质,如ROM/RAM、磁碟、光盘、存储阵列、固态存储介质等。
以上对本发明所提供的一种对存储设备进行性能测试的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
一种对存储设备进行性能测试的方法,其特征在于,包括读取预置的配置文件;根据所述配置文件指定的虚拟用户的操作行为信息,创建虚拟用户,并生成与所述虚拟用户对应的操作请求;按照所述配置文件中指定的调度方式,将所述操作请求发送到资源池,所述资源池用于保存存储设备中保存的数据的数据索引,其中,所述数据索引的类型与所述虚拟用户访问的数据类型对应;基于所述操作请求及所述虚拟用户访问的数据类型,将各虚拟用户与所述资源池中对应的数据索引通过端口建立连接,并触发各虚拟用户对所连接的数据索引对应的数据执行相应的操作;获取并记录操作过程中产生的性能信息。
2. 根据权利要求1所述的方法,其特征在于,所述基于所述操作请求及所述虚拟用户 访问的数据类型,将各虚拟用户与所述资源池中对应的数据索引通过端口建立连接包括如果所述存储设备中保存有对应的数据时,将各虚拟用户与资源池中对应的数据索引 通过端口建立连接;否则,在所述存储设备中创建对应的数据,在所述资源池中保存所述创建的数据在所 述存储设备中的数据索引,并将各虚拟用户与对应的数据索引通过端口建立连接。
3. 根据权利要求1所述的方法,其特征在于,所述获取并记录操作过程中产生的性能 信息包括获取并记录各虚拟用户对所连接的数据索引对应的数据执行相应的操作所占用的带 宽;或者,获取并记录所述各虚拟用户对所连接的数据索引对应的数据执行相应的操作的响应 时间;或者,获取并记录事务数信息,所述事务数信息用于指示所述各虚拟用户对所连接的数据索 引对应的数据执行相应的操作过程中的读写次数;或者,获取并记录所述为虚拟用户产生操作请求的类型;或者, 获取并记录所述为虚拟用户产生操作请求的操作次数。
4. 根据权利要求1至3任一项所述的方法,其特征在于,还包括测试结束后,识别出不再使用的虚拟用户,并释放所述不再使用的虚拟用户占用的内 存空间。
5. 根据权利要求1至3任一项所述的方法,其特征在于,还包括 测试结束后,销毁资源池中的数据索引,或者,将资源池信息记录到文件中。
6. —种对存储设备进行性能测试的装置,其特征在于,包括 配置文件读取模块,用于读取预置的配置文件;操作请求产生模块,用于根据所述配置文件指定的虚拟用户的操作行为信息,创建虚 拟用户,并生成与所述虚拟用户对应的操作请求;操作请求调度模块,用于按照所述配置文件中指定的调度方式,将所述操作请求发送 到资源池;所述资源池用于保存存储设备中保存的数据的数据索引,其中,所述数据索引的 类型与所述虚拟用户访问的数据类型对应;操作执行模块,用于基于所述操作请求及所述虚拟用户访问的数据类型,将各虚拟用 户与所述资源池中对应的数据索引通过端口建立连接,并触发各虚拟用户对所连接的数据 索引对应的数据执行相应的操作;性能信息获取模块,用于获取并记录操作过程中产生的性能信息。
7. 根据权利要求6所述的装置,其特征在于,所述操作执行模块包括 连接建立子模块,用于如果所述存储设备中保存有对应的数据时,将各虚拟用户与资源池中对应的数据索引通过端口建立连接;否则,在所述存储设备中创建对应的数据,在所 述资源池中保存所述创建的数据在所述存储设备中的数据索引,并将各虚拟用户与对应的 数据索引通过端口建立连接;触发子模块,用于触发各虚拟用户对所连接的数据索引对应的数据执行相应的操作。
8. 根据权利要求6所述的装置,其特征在于,所述性能信息获取模块包括 第一获取子模块,用于当所述操作执行模块触发各虚拟用户对所连接的数据索引对应的数据执行相应的操作时,获取并记录所述操作占用的带宽;或者,第二获取子模块,用于当所述操作执行模块触发各虚拟用户对所连接的数据索引对应 的数据执行相应的操作时,获取并记录所述操作的响应时间;或者,第三获取子模块,用于获取并记录事务数信息,所述事务数信息用于指示所述各虚拟 用户对所连接的数据索引对应的数据执行相应的操作过程中的读写次数;或者,第四获取子模块,用于获取并记录所述操作请求产生模块产生的所述操作请求的类 型;或者,第五获取子模块,用于获取并记录所述操作请求产生模块产生的所述操作请求的操作 次数。
9. 根据权利要求6至8任一项所述的装置,其特征在于,还包括 虚拟用户管理单元,用于测试结束后,识别出不再使用的虚拟用户对象,并释放所述不再使用的虚拟用户对象占用的内存空间。
10. 根据权利要求6至8任一项所述的装置,其特征在于,还包括资源管理单元,用于测试结束后,销毁资源池中的数据索引,或者,将资源池信息记录 到文件中。
全文摘要
本发明公开了一种对存储设备进行性能测试的方法及装置,所述方法包括读取预置的配置文件;根据所述配置文件指定的虚拟用户的操作行为信息,创建虚拟用户,并生成与所述虚拟用户对应的操作请求;按照所述配置文件中指定的调度方式,将所述操作请求发送到资源池;所述资源池用于保存存储设备中保存的数据的数据索引,所述数据索引的类型与所述虚拟用户访问的数据类型对应;基于所述操作请求,将各虚拟用户与所述资源池中对应的数据的索引通过端口建立连接,并触发各虚拟用户对所连接的数据索引对应的数据执行相应的操作;获取并记录操作过程中产生的性能信息。通过本发明,能够实现不同业务场景下对存储设备的测试,实现混合业务场景下的测试。
文档编号G06F11/36GK101727394SQ20091026171
公开日2010年6月9日 申请日期2009年12月28日 优先权日2009年12月28日
发明者梁莹 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1