[发明专利]网络存储系统的性能测试方法无效
申请号: | 200710072543.4 | 申请日: | 2007-07-20 |
公开(公告)号: | CN101090345A | 公开(公告)日: | 2007-12-19 |
发明(设计)人: | 姚念民;高峰 | 申请(专利权)人: | 哈尔滨工程大学 |
主分类号: | H04L12/26 | 分类号: | H04L12/26 |
代理公司: | 哈尔滨市哈科专利事务所有限责任公司 | 代理人: | 刘娅 |
地址: | 150001黑龙江省哈*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 网络 存储系统 性能 测试 方法 | ||
(一)技术领域
本发明涉及网络存储领域,具体涉及网络存储技术中的存储区域网络(Storage AreaNetwork-SAN)领域。
(二)背景技术
网络技术的发展和企业信息量的增加,使数据访问和存储呈现爆炸式的增长。需要精确的对网络存储系统进行性能评价。网络存储系统可以使用户透明的使用远程网络上的存储设备,即其使用方式与使用本地磁盘一致,所以传统的磁盘性能测试工具如IOMeter,IOZone等依然可用,但由于他们没有考虑到网络传输对IO(输入输出)性能的影响,所以其测试结果不够精确。例如:IOMeter很难产生超过服务器所能承受的最大负载,这是由于在网络协议实现中的重传机制和活锁的抑制,从而不能正确的量化存储系统在过载情况下的性能,其它存储测试工具IOZone等也存在类似的问题。
(三)发明内容
本发明的目的在于提供一种按照固定速率向被测系统发出IO请求,能以较低成本产生超过存储系统最大负载的请求,从而给出网络存储系统在超负载情况下的性能描述的网络存储系统的性能测试方法。
本发明的目的是这样实现的:发起端按照预定速率对所测的网络存储系统发出输入输出请求,具体包括以下几个部分,其中所有打开的文件的文件描述符集合称为监听队列:
1.1发起端按照预定速率对所测的网络存储系统发出IO请求,按预定速率打开映射到本地磁盘的服务器上的文件,返回文件描述符;
1.2将这些文件描述符加入监听队列;
1.3进入主循环,其预设的循环次数决定测试的总时间,在主循环中,执行以下步骤:
1.3.1对监听队列中的文件描述符使用特定应用程序接口进行事件探测,采用select(),如果有事件发生,则判断打开文件时间间隔是否超时,如果超时则执行1.3.2.1,如果不超时则执行1.3.2.2;
1.3.2对监听队列中的所有文件描述符进行如下操作;
1.3.2.1执行打开文件操作,将打开的文件描述符加入到监听队列;
1.3.2.2判断文件描述符是否可读,如果可读,则读取数据,关闭该文件描述符,并且从监听队列中清除该文件描述符;如果不可读,则判断文件描述符的请求是否超时,如果超时,则关闭文件描述符并在监听队列中去掉它;
测试写操作性能的过程同读操作。
本发明还有这样一些技术特征:
进入主循环以前应先设置主循环次数、文件描述符请求的超时时间和发起IO请求的时间间隔,以及事件探测的超时时间,然后进入主循环。
本发明的关键在于发起端按照一定速率对所测的网络存储系统发出IO请求,能够以较低成本或较少的客户端测试网络存储系统超载时的性能特性。而使用其他测试工具要达到这个目的,需要大量并行负载产生器,代价昂贵或不可行。与传统测量工具相比较,本发明能更真实的模拟实际负载情况,从而能更有效的对存储系统性能进行测量和改进,更准确的反映网络存储系统的性能特性。
本发明中存储系统过载访问请求的生成方法克服了传统测试工具不能有效模拟存储系统过载请求的缺点;该方法能够以一定速率、不受服务器端限制、循环向服务器端发起请求,直到请求量超过服务器的处理能力。
传统的测试工具生成负载的方法主要是使用多个并发的线程向服务器发起读写请求,每个线程完成的任务依次为:发起请求、建立连接、读取数据、关闭连接。所有步骤都是顺序执行,这些步骤完成后会立刻发起另外一个请求。在存储系统的target(目标端)端有一个接收请求的队列,该队列的长度取决于initiator(发起端)发起请求的速度以及请求的往返时间。如果initiator端发起请求的速度超过存储系统对接收队列里请求的处理速度,队列滞留的请求会越来越多,直到队列再也不能存储新接收的任何请求,这个时候target端会丢掉最新接受的所有请求,而不对initiator端返回任何确认信息。根据TCP的重传机制的自适应算法,initiator端请求的重传时间会不断增加,发起进程则会陷入一个循环,等待时间越来越长,会以越来越低的速度重传请求信息。基于这一点,传统测试工具请求生成方法只能使负载接近于服务器最大负载,但很难超过它。
本发明克服了这一缺陷,使服务器端在接近队列满的情况下,其抑制作用对发起端不再起作用。本发明将initiator请求生成模块进行了改进,关键点是以一定速度连续发起请求,发起请求后,将文件描述符传递给监听队列;随后通过循环对后续信息进行处理,通过select(选择调用)和FD_ISSET(位设置调用)调用来监听请求的确认信息,并对服务器返回的确认的信息进行处理或从准备好的文件描述符中读取数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学,未经哈尔滨工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710072543.4/2.html,转载请声明来源钻瓜专利网。