一种远程数据库响应性能测试比较系统及方法

文档序号:6375700阅读:151来源:国知局
专利名称:一种远程数据库响应性能测试比较系统及方法
技术领域
本发明具体涉及一种远程数据库响应性能测试比较系统及方法。
背景技术
随着软件业的迅猛发展,数据库系统从以前的单层结构进入了三层架构甚至现在多层架构的设计,从以前一个默默无闻的后台仓库,逐渐成为了互联网中一个重要的系统。以前往往把数据库操作写在应用层,从而提高各个模块的独立性和易用性,而现在越来越多的数据库操作被作为存储过程直接放在数据库上进行执行来提高执行效率和提高安全性。数据库开发在软件开发的比重逐步提高,随之而来的问题也突出。我们以前往往 重视对代码的测试工作,随着流程技术的日益完善,软件质量得到了大幅度的提高,但数据库方面的测试仍然处于空白。我们从来没有真正将数据库作为一个独立的系统进行测试,而是通过对代码的测试工作间接对数据库进行一定的测试。随着数据库开发的日益升温,数据库测试也需要独立出来进行符合自身特点的测试工作。虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增力口。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能。FPGA (Field Programmable Gate Array)即现场可编程门阵列,是作为专用集成电路ASIC领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。FPGA器件设计数字系统电路的主要优点如下(I)工作速度快FPGA / CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于软件。同时,使用FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。(2)可靠性高减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具较高集成度的系统比用许多低集成度的标准组件设计的相同系统具有高得多的可靠性。使用FPGA器件减少了实现系统所需要的芯片数目,在印刷线路板上的引线以及焊点数量也随之减少,所以系统的可靠性得以提高。(3)设计灵活使用FPGA器件,可以不被标准系列器件在逻辑功能上所限制,而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只须通过对所用的FPGA器件进行重新编程即可完成,给系统设计提供了很大的灵活性。(4)计算并行化
FPGA最大的特点就是计算过程的并行化。而一般的软件计算过程都是串行化的计算过程,这就大大的限制了计算能力的发挥。利用FPGA并行化的计算特征,可以模拟不同的数据计算和数据的发送过程,更真实的模拟了用户访问数据库时的情形。

发明内容
本发明的目的是提供一种远程数据库响应性能测试比较系统及方法,利用FPGA并行化的计算特征,在无差异的环境下能够对数据库的总体性能进行测试和评估。为实现上述目的,本发明采取的技术方案如下一种远程数据库响应性能测试比较系统及方法,包括一个FPGA板卡,FPGA板卡包括若干RJ45接口、数据发送模块、响应分析模块,所述的若干RJ45接口与对应的待测服务器相连,所述的FPGA板卡通过PCI接口与上位机相连;所述的数据发送模块的作用主要是通过RJ45接口向待测服务器发送数据;所述的数据响应分析模块的主要作用统计响应速度,发送和接受时间,返回的结果,延时信息。 所述的数据发送模块包括IP_hdr_ctrl模块,IP_data_ctrl模块,IP_pkt_gen_ctrl 模块,Link_ctrl 模块,Rate_ctrl 模块和 Pkt_seng_module 模块;IP_hdr_ctrl 模块主要完成数据包头部的产生,IP_data_ctrl模块主要完成数据包负载的产生,IP_pkt_gen_ctrl模块主要是控制IP_hdr_ctrl模块和IP_data_ctrl模块,Link_ctrl模块主要启动IP_pkt_gen_ctrl模块,Rate_ctrl模块主要控制数据的发送速度,Pkt_send_module模块主要发送上一步所产生的数据包;所述的响应分析模块包括TCP_link_pkt模块,TCP_link_parser模块,DB_ACK_parser模块和Result_analysis模块;TCP_link_pkt模块主要侦听网络接口和接受并判断数据包是否为TCP连接数据包,TCP_link_parser模块主要接收数据包后解析并控制TCP连接,DB_ACK_pkt检测收到的数据包是否为数据库响应数据包,Result_analysis模块主要接收信息,并且对信息进行初步的分析。依据本发明,FPGA实现数据库性能测试工具的数据传输过程包括数据发送模块和响应分析模块数据发送模块的步骤包括步骤一上电就绪,等待上位机对FPGA配置完成;步骤二 启动TCP_link_gen模块,产生TCP连接所需要的三次握手协议的数据包,并通过 Pkt_send_module 发送;步骤三TCP_link_pkt模块侦听网络接口,捕获服务器响应的TCP连接数据包,确认TCP连接完成之后,向Link_ctrl模块发送TCP连接完成信息;步骤四Link_ctrl模块启动 IP_pkt_gen_ctrl 模块;步骤五在IP_pkt_gen_ctrl 模块控制下,IP_hdr_ctrl 和 IP_data_ctrl 分别完成数据包头部和数据包负载的产生,并且结合产生完整的待测试的数据包。步骤六Rate_ctrl模块控制数据的发送速度,Pkt_seng_module发送上一步所产生的数据包;响应分析模块的步骤包括步骤七TCP_link_pkt接受并判断数据包是否为TCP连接数据包,若是则转发至步骤八,否则,转发数据包至步骤九;
步骤八TCP_link_parser接收数据包后解析并控制TCP连接,直至TCP连接完成,然后发送link_ctrl完成信息;步骤九DB_ACK_pkt检测收到的数据包是否为数据库响应数据包,若是则传至步骤十,否则就丢弃。步骤十DB_ACK_parser主要用于解析确认包的数据,把数据库中返回的信息进行有效的提取。步骤^--Result_analysis模块接收步骤十的信息,并且对信息进行初步的分
析。部分信息则将通过PCI接口传至上位机。依据本发明,FPGA的4个RJ45接口连接4台待测的服务器,FPGA内部通过PCI寄存器接口的配置产生所需的数据包,并且通过4个接口同时并行发送,从而产生无差异条件下的测试环境。数据服务器接收到FPGA发送的数据包之后产生相应的响应,FPGA接收 到响应数据包之后通过内部的分析模块分别统计响应速度,发送和接受时间,返回的结果,延时等信息。这些信息通过在FPGA初步分析之后,交由PCI接口传至上位机,对响应的结果进行详细的分析并以图像化的形式显示出来。上述FPGA的PCI接口主要用于完成上位机对FPGA的配置功能和FPGA结果返回上位机功能。上述FPGA四个RJ45接口主要用于连接待测试的服务器,数据从该接口发出,同时接受服务器返回的测试响应。上述FPGA的内部逻辑在上位机的控制下,完成特定测试数据包的拼装和发送。本发明的有益效果第一该系统的功能使用硬件完成,产生测试数据包的速率与软件实现的相比有很大的提高,可以完成Gbps到IOGbps级的数据速率。第二使用硬件测试的方法与使用服务器相比有更大的优势,硬件实现中可以把CPU解放出来去做另外的事情,从而减少计算机的负载。第三硬件测试系统的精度更高,可以灵活的配置。由于该系统不受主机负载的影响,吞吐率提高的前提下并没有对主机造成影响,而且在数据报统计,链路连接计时以及响应时间统计过程中具有更高的精度。针对不同的需求,可以配置不同的测试目标,从而使该系统的通用性增强。第四实现过程中与专业的测试服务器相比,成本相当的低,可以满足不同用户级别的需求。


图I.整体设计架构2. TCP连接和数据包产生模块流程3. FPGA接收模块和数据分析模块流程4. NF数据格式表示图具体实施方法参照说明书FPGA实现数据库性能测试工具,其包括测试数据报生成模块和数据库响应分析模块,其总体设计图如图一所示。
测试数据包生成模块,参照说明书图2,用于产生测试所用的数据包,这些数据包在PCI总线的控制下能够产生特定的用于测试的数据包。响应数据分析模块,参照说明书图3,用于分析FPGA探测到的服务器返回的信息。测试数据包生成模块工作过程如图2所示I.在测试开始时,系统上电,TCP连接模块产生用于TCP三次握手协议所用的数据包,并且发送。FPGA收到服务器发送的握手协议数据之后,对其进行分析,重复此过程,直至TCP连接建立。2. TCP连接建立之后,数据包头产生模块和数据负载产生模块开 始进行工作,分别产生随机的测试数据MAC,特定协议和源、目的IP以及随机的数据库增删改查等操作的数据。3.把数据包头和数据负载合并成为完整的数据包,并且加上NF工程的头部和结尾,这些数据包将被存进FIFO,等待速率控制模块和发送模块进行调用。4.速率控制模块将数据包的转发速度。性能测试的关键点也是该模块。该模块提取前一模块FIFO中的数据包,并且按照既定的转发速度向下一个模块发送数据包,从而达到控制数据包发送速度的目的。以下数据速率控制模块的测试功能(I)以一定的速率进行数据库服务器连接测试。只发送数据库的连接请求,通过发送请求可以检测特定速率下服务器的连接响应速度,从而测试数据库服务器的连接成功率。(2)以一定的速率发送数据库操作请求,通过接收模块解析可以测试特定速率下数据库操作的正确性。(3)以最大的发送速率对数据库服务器进行负载的测试。该系统最大的数据发送速率位lGbps,在这样的速率下可以测试数据库服务器在高负载情况下的稳定性、访问的持久性以及吞吐量。(4)以递增的速率进行数据库服务器请求,解析模块可以通过数据库返回包的时间间隔和发送间隔的比较,从而确定服务器最大的负载。(5)以一定的模式发送单一请求。再次模式下可以连续发送一系列的单一数据请求包,通过多次测试可以评估数据库服务器在某一操作下的平均响应时间。5.数据发送模块主要用于发送(4)所传递的数据包。变NF格式为网络数据请求的格式,顺利的发送测试数据包。数据库响应分析模块主要用于分析FPGA捕获到的服务器响应的数据包,其主要工作过程如下(A)系统上电后,等待接收系统响应的数据包,首先查看该数据包是否为TCP连接数据包,若是,则发送确认信号(B)。(B)TCP连接解析模块主要用于解析TCP连接的数据包,配合b完成TCP连接的建
立工作。(C)在(A)中,若该数据包不是TCP连接建立数据包,则将该数据包发送至(D),等待(D)的处理。(D)检测接收到的数据包是否为数据库返回的确认数据包,若是则将该书包发送至(E),等待(E)的处理,否则将该数据包丢弃。
(E)分析模块主要用于对服务器返回数据的精确分析。通过和速率控制模块、发送模块的时间对比,确定数据包的请求延时等测试结果。(F)分析模块将一些处理过的信息通过PCI接口交由上位机进行处理,最后形成详尽的服务器性能测试报告。由于使用的FPGA有四个RJ45接口,每个接口连接一台服务器,这就形成了无差异条件下对服务器的性能进行测试的方法,通过彼此之间的比较,可以让用户了解服务器之间的性能差异,从而对服务器系统进行相对精确的评估。相比通用的单机测试方法,这样的测试更具有优势。数据格式表示如图4所示当ctrl[7:0]为8’hFF时,表示一个数据包的开始,data[40:32]存储着当前数据 包有多少字(32位),data[12:0]则存储着当前数据包有多少字,data[19:16]存储着当前数据包所属通道号(有16个通道);然后ctrl为8’ h00,表示传输的是正常数据;最后,当ctrl中有且只有一位为I时表示一个帧的结束,且I的位置指示了最后的一个有效数据字节。FPGA工作的时钟频率125MHz,数据位宽为64b,控制位宽为8b,因此,该系统最大的吞吐率为125MHz 72b=9Gbps,除去控制位的开销外,有效的吞吐率为125MHz 64b=8Gbps。这样的速率已经能够满足当前数据库性能测试的要求。根据如上数据包格式,在FIFO接口有如下操作步骤初始化FIFO为空,等待数据到来。当收到的数据Ctrl为8’ hFF时,表示数据包头部到来,开始将数据写入FIFO中。当发现Ctrl中有任何一位非零时,表示到达数据包末尾,停止向FIFO写入数据。等待下一个数据包头部的到来。这种简单易用的FIFO接口适用于以包或帧为单位的数据传输控制,如网络传输过程中数据链路层的帧,视频数据中的每一帧视频等。先入先出队列(First Input First Output, FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。FIFO—般用于不同时钟域之间的数据传输,比如FIFO的一端时AD数据采集,另一端时计算机的PCI总线,假设其AD采集的速率为16位100K SPS,那么每秒的数据量为100KX 16bit=l. 6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为1056Mbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIF0,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。
权利要求
1.一种远程数据库响应性能测试比较系统及方法,包括一个FPGA板卡,其特征在于FPGA板卡包括若干RJ45接口、数据发送模块、响应分析模块,所述的若干RJ45接口与对应的待测服务器相连,所述的FPGA板卡通过PCI接口与上位机相连;所述的数据发送模块的作用主要是通过RJ45接口向待测服务器发送数据;所述的数据响应分析模块的主要作用统计响应速度,发送和接受时间,返回的结果,延时信息。
2.如权利要求I所述的所述的一种远程数据库响应性能测试比较系统及方法,其特征在于数据发送模块包括IP_hdr_ctrl模块,IP_data_ctrl模块,IP_pkt_gen_ctrl模块,Link_ctrl 模块,Rate_ctrl 模块和 Pkt_seng_module 模块;IP_hdr_ctrl 模块主要完成数据包头部的产生,IP_data_ctrl模块主要完成数据包负载的产生,IP_pkt_gen_ctrl模块主要是控制IP_hdr_ctrl模块和IP_data_ctrl模块,Link_ctrl模块主要启动IP_pkt_gen_ctrl模块,Rate_ctrl模块主要控制数据的发送速度,Pkt_seng_module模块主要发送上一步所产生的数据包。
3.如权利要求I所述的所述的一种远程数据库响应性能测试比较系统及方法,所述的响应分析模块包括TCP_link_pkt模块,TCP_1 ink_parser模块,DB_ACK_parser模块和Result_analysis模块;TCP_link_pkt模块主要侦听网络接口和接受并判断数据包是否为TCP连接数据包,TCP_link_parser模块主要接收数据包后解析并控制TCP连接,DB_ACK_pkt检测收到的数据包是否为数据库响应数据包,Result_analysis模块主要接收信息,并且对信息进行初步的分析。
4.如权利要求1-3任一所述的一种远程数据库响应性能测试比较系统的比较方法,其特征在于 数据发送模块的步骤包括 步骤一上电就绪,等待上位机对FPGA配置完成; 步骤二 启动TCP_link_gen模块,产生TCP连接所需要的三次握手协议的数据包,并通过 Pkt_send_module 发送; 步骤三TCP_link_pkt模块侦听网络接口,捕获服务器响应的TCP连接数据包,确认TCP连接完成之后,向Link_ctrl模块发送TCP连接完成信息; 步骤四Link_ctrl模块启动IP_pkt_gen_ctrl模块; 步骤五在IP_pkt_gen_ctrl模块控制下,IP_hdr_ctrl和IP_data_ctrl分别完成数据包头部和数据包负载的产生,并且结合产生完整的待测试的数据包; 步骤六Rate_ctrl模块控制数据的发送速度,Pkt_seng_module发送上一步所产生的数据包; 响应分析模块的步骤包括 步骤七TCP_link_pkt接受并判断数据包是否为TCP连接数据包,若是则转发至h,否贝U,转发数据包至i; 步骤八TCP_link_parSer接收数据包后解析并控制TCP连接,直至TCP连接完成,然后发送link_ctrl完成信息; 步骤九DB_ACK_pkt检测收到的数据包是否为数据库响应数据包,若是则传至j,否则就丢弃; 步骤十DB_ACK_parSer主要用于解析确认包的数据,把数据库中返回的信息进行有效的提取;步骤^--Result_analysis模块接收j的信息,并且对信息进行初步的分析;部分信息则传至上位机。·
全文摘要
本发明具体公开了一种远程数据库响应性能测试比较系统及方法,包括控制系统、数据发送模块和数据相应模块,所述的控制系统包括FPGA板卡、待测的服务器和上位机,所述的FPGA板卡通过RJ45接口与待测服务器相连,所述的FPGA板卡通过SPI接口与上位机相连;所述的数据发送模块包括IP_hdr_ctrl模块,IP_data_ctrl模块,IP_pkt_gen_ctrl模块,Link_ctrl模块,Rate_ctrl模块和Pkt_seng_module模块,所述的响应分析模块包括TCP_link_pkt模块,TCP_link_parser模块,DB_ACK_parser模块和Result_analysis模块。
文档编号G06F11/00GK102833131SQ201210307910
公开日2012年12月19日 申请日期2012年8月27日 优先权日2012年8月27日
发明者陈贞翔, 王可可, 杨波, 马坤, 刘鹍 申请人:济南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1