档案系统的压力测试方法

文档序号:6361491阅读:222来源:国知局
专利名称:档案系统的压力测试方法
技术领域
本发明涉及一种档案系统的测试方法,特别是一种对利用多执行绪及多档案操作对档案系统进行压力测试的方法。
背景技术
档案系统是计算机操作系统的重要组成部份,其正常工作需要计算机存储设备和操作系统进行协调配合,合理调度。在压力越大的时候,也就是各种档案操作十分繁忙时,档案系统越容易出现错误,其在操作网络驱动器时尤为突出,所以通过模拟实际的操作环境,对档案系统进行压力测试就显得十分重要。
档案系统进行压力测试的目的是给逻辑驱动器增加档案操作的压力,其操作对象包括硬盘(Hard Disk Device)、可移动内存(RemoveableStorage)、光盘驱动器(CDROM)、软盘驱动器(Floppy Disk)及网络驱动器(Network Device)等,档案操作包括读、写、拷贝、移动、创建及删除等。
目前对档案系统的测试一般是对单个档案进行操作,通过档案操作路径的不同和档案创建方式的不同来模拟实际档案操作。档案的存储是从最先发现的空白簇开始,然后在最临近的空白簇继续存储,当档案删除后,原先占用的簇被释放,被释放的第一个簇将是下一个存储档案的第一个簇,如果再存储档案还将覆盖原先释放的簇。显然,对单个档案进行操作就只能在一个固定的存储区内进行,无法对整个存储区进行测试。如果想要扩大测试的存储区范围就只能通过增加档案的容量或者只写不删。但单个档案再大,档案仍然只能存储在相对较临近的区域里,而且反复创建和删除,一旦次数超过逻辑驱动器磁盘读写次数的上限,就有可能损坏磁盘;只写不删虽然也扩大了存储区域,但是在实践中会导致测试和删除时间过长。
目前档案测试的方法缺点十分明显,不但测试压力小,效率低,同时在对光盘驱动器(CDROM Driver)及软盘驱动器(Floppy Disk Driver)进行多执行绪(Multithreading)测试时不稳定,不能很好的模拟实际的档案操作,此时,就迫切需要一种能够增加测试压力,扩大测试覆盖区域,提高测试效率的档案系统压力测试方法来解决上述问题。
本发明所提的一种档案系统的压力测试方法,包括如下步骤启动数个档案测试执行绪;由操作系统从该数个执行绪中选取一个当前执行绪;该当前执行绪在选中期间顺序执行其测试操作,其中,每一个测试执行绪包括如下步骤提高自身在操作系统中的优先执行顺序;检测逻辑驱动器的剩余存储空间,并设定测试运行时间;根据该检测结果及该运行时间,执行该测试执行绪中的档案操作;结束该测试执行绪。
与传统的检测方法相比,本发明提供的方法使用多执行绪和多档案操作来提高档案系统测试的压力及覆盖区域,通过特定算法合理调度各个执行绪,监控逻辑驱动器的剩余存储空间,从而更好的模拟现实环境下的档案操作。在对光盘驱动器执行测试时,通过共享方式打开光盘上的档案来读取整张光盘;在对软盘驱动器执行测试时,每个执行绪只写入一个尽量小的档案,缩短响应时间,从而使针对光盘、软盘驱动器的测试可支持更多执行绪,实现了真正的多执行绪,提高了测试效率及压力。


图1为本发明的档案系统的压力测试方法的总体流程图;图2为本发明所提的提高测试执行绪优先级的流程图;图3为本发明所提的根据该检测结果及该运行时间执行该测试执行绪中的档案操作的流程图;图4为本发明所提的返从该数个执行绪中分时交替选取一个当前执行绪的流程图。
图中符号说明步骤110启动数个档案测试执行绪步骤120由操作系统从该数个执行绪中分时交替选取一个当前执行绪步骤130该当前执行绪在选中期间顺序执行其测试操作步骤140提高自身在操作系统的优先执行顺序步骤150检测逻辑驱动器的剩余存储空间,设定测试运行时间步骤160根据检测结果及运行时间,执行测试执行绪中的档案操作步骤170结束测试执行绪步骤210获取该测试执行绪的编号步骤220根据该编号提高该测试执行绪在操作系统中的优先执行顺序步骤310当该逻辑驱动器无剩余存储空间时,结束该测试执行绪步骤320当该逻辑驱动器有剩余存储空间,且测试执行时间在该运行时间内的时,则继续执行该测试执行绪中的档案操作步骤330当该逻辑驱动器有剩余存储空间,但测试执行时间超出该运行时间时,结束该测试执行绪步骤410返回由操作系统从该数个执行绪中选取一个当前执行绪的步骤具体实施方式
下面结合附图对本发明进行详细说明请参见图1来说明,该图为本发明的档案系统的压力测试方法的总体流程图,说明如下首先启动数个档案测试执行绪(步骤110);然后由操作系统从该数个执行绪中选取一个当前执行绪(步骤120);最后该当前执行绪在选中期间顺序执行其测试操作(步骤130);每一个测试执行绪包括如下步骤提高自身在操作系统的优先执行顺序(步骤140);检测逻辑驱动器的剩余存储空间,并设定测试运行时间(步骤150);根据该检测结果及该运行时间,执行该测试执行绪中的档案操作(步骤160);结束该测试执行绪(步骤170)。
测试执行绪中的档案操作中,可以包含多个档案操作过程,也可以只包含有一个档案操作过程,与测试对象的类型有关。当测试对象为硬盘驱动器等存储容量较大的设备,则包含多个档案操作过程;如果是软盘驱动器等容量较小的设备,则只包括一个档案操作过程。
档案操作类型包括读取档案、写入档案及读写档案等。
本发明的执行流程是由内外两层控制程序组成,外层为操作系统的多执行绪的管理机制,用来启动多个执行绪,并从中选择一个预备执行的当前测试执行绪;内层为档案测试执行绪的控制机制,用来提高操作系统选择出的执行绪的优先级,检测逻辑驱动器的剩余存储空间及设定测试运行时间并控制其执行。
在测试过程中,如果其中有多个执行绪的操作过程均为向逻辑驱动器内写入档案,而且各执行绪之间因为没有互相通讯而不能相互制约,很容易因该逻辑驱动器被写满而造成系统死机。这就需要测试执行控制程序根据各个执行绪的档案操作方式,以及逻辑驱动器的剩余存储空间的检测情况,合理控制整个测试过程。
检测逻辑驱动器的存储空间是通过检测算法对其存储空间的覆盖情况进行确定,为执行绪选择算法提供依据。要保证档案系统的压力测试能正常运行,不至于因逻辑驱动器存储空间被写满而死机,就必须在每次执行测试执行绪之前检测一遍其存储空间,调整检测算法,从而合理控制逻辑驱动器内存储空间的覆盖大小,为其设定一个即能保证测试压力,又能保证测试正常运行的剩余空间最小值,使测试更加真实。该剩余空间必须超过虚拟内存所在逻辑驱动器上的虚拟内存大小(因为虚拟内存实际上使用的是逻辑驱动器的存储空间)。测试执行绪越多,对逻辑驱动器存储空间及虚拟内存的需求就越大。
检测演算对于硬盘来说,如果其剩余的存储空间超过硬盘容量的2%,则可以继续操作,如果其剩余的空间不足硬盘容量的2%,则结束当前的档案系统测试线程。这里的2%是一个经验数值,可根据具体情况进行变动。
测试运行时间也是一个重要的测试参数,测试运行时间越大,逻辑驱动器内存储空间的覆盖空间也就越大,当测试执行绪较多时,为解决对逻辑驱动器存储空间及虚拟内存要求较高的问题,应该合理控制测试运时间。该测试运行时间的设定与被测试的对象有关,当被测试的对象为存储容量较小的软盘驱动器时,运行时间相应短一些;如果是容量较大的硬盘,则可以长一些。与检测逻辑驱动器存储空间的步骤进行配合,即要保证测试覆盖范围足够大,同时也不能因为逻辑驱动器内存储空间被写满而导致系统死机。
档案系统的压力测试的对象可以是各种存储设备,例如硬盘驱动器、软盘驱动器、光盘驱动器及移动存储驱动器等。
下面,进一步说明本发明的流程。
请参见图2,该图为本发明所提的提高测试执行绪优先级的流程图,说明如下首先获取该测试执行绪的编号(步骤210) 然后根据该编号提高该测试执行绪在操作系统中的优先执行顺序(步骤220);最后进入步骤130。
档案系统的操作是操作系统中的较高层次的操作,操作系统为了提高多执行绪运行性能,分配给档案操作的优先级相对其他操作而言要低一些。这样,在档案按系统的压力测试项与其它测试项同时运行时,该压力测试的项由于其优先级较低,对系统存储设备,也就是各个逻辑驱动器进行档案系统压力测试时,测试压力就会相应降低,甚至几乎为零,这就违背了压力测试的初衷。为了解决这个问题,只能提高操作系统中档案操作执行绪的优先级。
在操作系统中,执行绪管理机制通过为每个执行绪分配一个编号,从而方便对不同执行绪进行识别和执行。在Windows操作系统中,通过调用Windows API函数就能获取执行绪的编号,然后根据该编号来找到相应的执行绪,通过档案测试执行绪的控制机制提高其优先级。
在这里需要注意的是,档案操作的优先级提高后,在单独运行档案系统压力测试的测试项时,CPU(Central Processing Unit中央处理器)时间的占用率会到100%,其它的测试项将无法正常运行。为解决这个问题,本发明在档案系统压力测试中引入一个测试间隔(TestInterval)参数,使档案系统在每一次档案操作后都挂起一段时间,将CPU时间让给其它测试项,当档案系统就绪后再次得到CPU的优先响应。这样,不仅使对系统存储设备的测试压力明显提高,而且也不会对其他测试项的测试造成影响,从而提高了系统测试的效率。
在档案系统的压力测试过程中,由于测试的需要,会在进行测试的当前逻辑驱动器上产生一些测试的临时档案,如果在测试过程中,测试程序非正常退出,清理这些临时档案会十分繁琐,而且如果清理不完全就会占用驱动器的存储空间,为此,本发明为解决这个问题,为每个测试执行绪建立一个临时目录,并将这些临时档案存入该目录中,这样,测试完成后的临时档案清理就变得更为简单,只需要将临时目录删除即可。
请参见图3,该图为本发明所提的根据该检测结果及该运行时间执行该测试执行绪中的档案操作的流程图,说明如下步骤140之后,当该逻辑驱动器无剩余存储空间时,结束该测试执行绪步骤(310);当该逻辑驱动器有剩余存储空间,且测试执行时间在该运行时间之内时,则继续执行该测试执行绪中的档案操作(步骤320);当该逻辑驱动器有剩余存储空间,但测试执行时间超出该运行时间时,结束该测试执行绪(步骤330)。
根据检测算法检测逻辑驱动器存储空间覆盖情况当其剩余空间等于或小于该剩余空间最小值时,说明该逻辑驱动器的剩余存储空间不足,结束该测试执行绪;当剩余空间大于该剩余空间最小值时,说明该逻辑驱动器的剩余存储空间足够,进一步判断执行绪的执行时间与设定的测试运行时间的关系;当该执行时间小于运行时间时,继续进行该测试执行绪,当该执行时间等于或者大于运行时间时,说明测试过程超时,结束该测试执行绪。
请参见图4,该图为本发明所提的返回从该数个执行绪中分时交替选取一个当前执行绪的流程图,说明如下步骤160之后,返回由操作系统从该数个执行绪中选取一个当前执行绪的步骤(410)。
当前测试执行绪执行完后,将重新由操作系统从数个档案测试执行绪中选择一个尚未执行的测试执行绪,继续进行档案系统的压力测试,直到整个测试过程全部完成。
下面用较佳的实施例来说明本发明的操作流程。
测试对象以硬盘驱动器为例,在Windows下对该硬盘执行写入档案操作的测试。

首先,启动两个测试执行绪10及20,每个执行绪包括两个执行写入档案操作过程,如上述表格所示,假设通过操作系统的执行绪管理机制选择执行绪10执行,并通过测试执行绪的控制机制提高执行绪10的优先级;在硬盘内创建一个档案名为File System_10的临时目录,存放测试临时档案A、B;检测硬盘的当前存储空间覆盖情况,并设定操作时间按为3秒;通过检测,当前硬盘剩余存储空间足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为1秒,执行执行绪10的操作,向硬盘中写入档案A;然后再次检测硬盘的当前存储空间覆盖情况,当前硬盘存储空间依然足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为2秒,继续执行该执行绪10的操作向硬盘中写入档案B;然后再次检测硬盘的当前存储空间覆盖情况,当前硬盘存储空间足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为3秒,与设定的操作时间相同,该执行绪退出CPU,将CPU时间交给其它测试项。
当档案操作再次就绪时,其它测试项把CPU时间交出,假设过操作系统的执行绪管理机制选择执行绪20执行,并通过测试执行绪的控制机制提高执行绪20的优先级;在硬盘内创建一个档案名为FileSystem_20的临时目录,存放测试临时档案C、D;检测硬盘的当前存储空间覆盖情况,并设定操作时间按为3秒;通过检测,当前硬盘剩余存储空间足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为1秒,执行执行绪20的操作,向硬盘中写入档案B;然后再次检测硬盘的当前存储空间覆盖情况,当前硬盘存储空间足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为2秒,继续执行该执行绪20的操作向硬盘中写入档案D;然后再次检测硬盘的当前存储空间覆盖情况,当前硬盘存储空间依然足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为3秒,与设定的操作时间相同,删除临时目录,该执行绪退出CPU,并将CPU时间交给其它测试项。
至此,本次测试过程全部完毕。
测试对象以软盘驱动器为例,在Windows下对该软盘执行写入档案操作的测试。传统方法对软盘即行多执行绪测试的时候,有一定几率的报错现象,原因是由于软盘的容量只有1.44MB,当执行多执行绪操作,由于相应软盘的时间太长,容易因为写满软盘而造成程序出错。本发明对其进行了改进,每个执行绪只写入一个档案,档案尽量小,并提高执行绪的优先级,缩短了响应时间,使针对软盘的测试可支持更多执行绪。

首先,启动三个测试执行绪10、20及30,每个执行绪包括一个执行写入档案操作过程,如上述表格所示,假设过操作系统的执行绪管理机制选择执行绪10执行,并通过测试执行绪的控制机制提高执行绪10的优先级;在软盘内创建一个档案名为File System_10的临时目录,存放测试临时档案A;检测软盘的当前存储空间覆盖情况,并设定操作时间按为3秒;通过检测,当前软盘剩余存储空间足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为2秒,执行执行绪10的操作,向硬盘中写入档案A;然后该执行绪退出CPU,将CPU时间交给其它测试项。
当档案操作再次就绪时,其它测试项把CPU时间交出,假设过操作系统的执行绪管理机制选择执行绪20执行,并通过测试执行绪的控制机制提高执行绪20的优先级;在软盘内创建一个档案名为B_FileSystem_20的临时目录,存放测试临时档案B;检测软盘的当前存储空间覆盖情况,并设定操作时间按为3秒;通过检测,当前软盘剩余存储空间足够,判断执行绪的执行时间是否操作操作时间,当前执行时间为2秒,执行执行绪20的操作,向硬盘中写入档案B;然后该执行绪退出CPU,将CPU时间交给其它测试项。
当档案操作再次就绪时,其它测试项把CPU时间交出,假设过操作系统的执行绪管理机制选择执行绪30执行,并通过测试执行绪的控制机制提高执行绪30的优先级;在软盘内创建一个档案名为FileSystem_30的临时目录,存放测试临时档案C;检测硬盘的当前存储空间覆盖情况,当前硬盘存储空间不足,删除临时目录,该执行绪退出CPU,并将CPU时间交给其它测试项。
至此,本次测试过程全部完毕。
测试对象以光盘驱动器为例,在Windows下对该软盘执行读取档案操作的测试。传统方法对光盘驱动器的测试项目中,只读取一个*.exe档案,当该档案较小时,Windows为提高系统性能,会把档案存储到缓存中,这样,对光盘驱动器的操作就变成了对系统缓存进行操作,没有达到实际测试目的。本发明针对其进行了改进,对整张光盘进行读取,这样,系统的缓存就不断被刷新,迫使Windows对光盘驱动器直接操作;而背景技术对光盘的操作是纯粹的单执行绪方式,本发明通过共享方式打开光盘上的档案,从而实现了真正的多执行绪。

光盘由于其档案只能进行读取,所以测试方法与硬盘及软盘有所区别,是通过读取光盘内的档案并拷贝到硬盘上来完成的。
首先,启动执行绪10及20,每个执行绪包括两个执行读取档案操作过程,如上述表格所示,假设过操作系统的执行绪管理机制选择执行绪10执行,并通过测试执行绪的控制机制提高执行绪10的优先级;在硬盘内创建一个档案名为File System_10的临时目录,存放测试临时档案A、B;设定操作时间按为3秒;判断执行绪的执行时间是否操作操作时间,当前执行时间为1秒,执行执行绪10的操作,读取光盘中的档案A并写入硬盘的File System_10的临时目录内;然后再次判断执行绪的执行时间是否操作操作时间,当前执行时间为2秒,执行执行绪10的操作,读取光盘中的档案B并写入硬盘的FileSystem_10的临时目录内;判断执行绪的执行时间是否操作操作时间,当前执行时间为3秒,与设定的操作时间相同,该执行绪退出CPU,将CPU时间交给其它测试项。
当档案操作再次就绪时,其它测试项把CPU时间交出,假设过操作系统的执行绪管理机制选择执行绪20执行,并通过测试执行绪的控制机制提高执行绪20的优先级;在硬盘内创建一个档案名为FileSystem_20的临时目录,存放测试临时档案C、D;设定操作时间按为3秒;判断执行绪的执行时间是否操作操作时间,当前执行时间为1秒,执行执行绪20的操作,读取光盘中的档案C并写入硬盘的FileSystem_20的临时目录内;然后再次判断执行绪的执行时间是否操作操作时间,当前执行时间为2秒,执行执行绪20的操作,读取光盘中的档案D并写入硬盘的File System_20的临时目录内;判断执行绪的执行时间是否操作操作时间,当前执行时间为3秒,与设定的操作时间相同,该执行绪退出CPU,将CPU时间交给其它测试项。
至此,本次测试过程全部完毕。
以上所述,仅为本发明中的较佳实施例,并非用来限定本发明的实施范围;即凡依本发明的权利要求书所作的均等变化与修饰,皆为本发明的权利要求书所涵盖。
权利要求
1.一种档案系统的压力测试方法,其特征在于,该方法至少包括以下步骤启动数个档案测试执行绪;由操作系统从该数个执行绪中选取一个当前执行绪;及该当前执行绪在选中期间顺序执行其测试操作,其中,每一个测试执行绪包括如下步骤提高自身在操作系统中的优先执行顺序;检测逻辑驱动器的剩余存储空间,并设定测试运行时间;根据该检测结果及该运行时间,执行该测试执行绪中的档案操作;及结束该测试执行绪。
2.如权利要求1所述的档案系统的压力测试方法,其特征在于,提高自身在操作系统中的优先执行顺序的步骤更包括以下步骤获取该测试执行绪的编号;及根据该编号提高该测试执行绪的优先级。
3.如权利要求2所述的档案系统的压力测试方法,其特征在于,获取该测试执行绪的编号为在Windows操作系统中,通过调用WindowsAPI函数来获取该执行绪的编号。
4.如权利要求1所述的档案系统的压力测试方法,其特征在于,由操作系统从该数个执行绪中选取一个当前执行绪为通过Windows操作系统的执行绪管理机制进行选择。
5.如权利要求1所述的档案系统的压力测试方法,其特征在于,检测逻辑驱动器的剩余存储空间,并设定测试运行时间的步骤后更包括在执行测试的逻辑驱动器上创建临时目录的步骤,其用于存放执行测试的临时档案的步骤。
6.如权利要求1所述的档案系统的压力测试方法,其特征在于,检测该逻辑驱动器的剩余存储空间为检测该逻辑驱动器内存储空间的覆盖情况。
7.如权利要求1所述的档案系统的压力测试方法,其特征在于,该逻辑驱动器为硬盘。
8.如权利要求1所述的档案系统的压力测试方法,其特征在于,该测试运行时间根据被测试对象类型进行设定。
9.如权利要求1所述的档案系统的压力测试方法,其特征在于,根据该检测结果及该运行时间,执行该测试执行绪中的档案操作的步骤为当该逻辑驱动器无剩余存储空间时,结束该测试执行绪。
10.如权利要求1所述的档案系统的压力测试方法,其特征在于,根据该检测结果及该运行时间,执行该测试执行绪中的档案操作的步骤为当该逻辑驱动器有剩余存储空间,且测试执行时间在该运行时间之内时,则继续执行该测试执行绪中的档案操作。
11.如权利要求1所述的档案系统的压力测试方法,其特征在于,根据该检测结果及该运行时间,执行该测试执行绪中的档案操作的步骤为当该逻辑驱动器有剩余存储空间,但测试执行时间超出该运行时间时,结束该测试执行绪。
12.如权利要求1所述的档案系统的压力测试方法,其特征在于,执行该测试执行绪中的档案操作的步骤为对该逻辑驱动器进行读取档案操作。
13.如权利要求1所述的档案系统的压力测试方法,其特征在于,执行该测试执行绪中的档案操作的步骤为对该逻辑驱动器进行写入档案操作。
14.如权利要求1所述的档案系统的压力测试方法,其特征在于,执行该测试执行绪中的档案操作的步骤为对该逻辑驱动器进行读写档案操作。
15.如权利要求1所述的档案系统的压力测试方法,其特征在于,根据该检测结果及该运行时间,执行该当前测试执行绪中的档案操作的步骤后更包括删除该临时目录及其内部的该临时档案的步骤。
16.如权利要求1所述的档案系统的压力测试方法,其特征在于,结束该测试执行绪的步骤后更包括返回由操作系统从该数个执行绪中选取一个当前执行绪的步骤。
全文摘要
本发明涉及一种档案系统的压力测试方法,通过多执行绪和多档案操作来增加测试压力及范围,包括如下步骤启动数个档案测试执行绪,由操作系统从数个执行绪中选取一个当前执行绪;当前执行绪在选中期间顺序执行其测试操作,其中,每一个测试执行绪包括如下步骤提高自身在操作系统中的优先执行顺序,检测逻辑驱动器的剩余存储空间,设定测试运行时间,根据检测结果及运行时间,执行测试执行绪中,结束测试执行绪。
文档编号G06F11/25GK1549123SQ0313133
公开日2004年11月24日 申请日期2003年5月12日 优先权日2003年5月12日
发明者刘文涵, 宋建福, 郑健明 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1