【文档说明】基于TPC-C标准的数据库基准性能测试工具的研究和实现---POWERPOINT课件.ppt,共(48)页,730.523 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92378.html
以下为本文档部分文字说明:
1基于TPC-C标准的数据库基准性能测试工具的研究和实现指导教师:李祥教授答辩人:马跃贵州大学计算机软件与理论研究所2选题背景及意义数据库管理系统是国家信息基础建设设施的重要组成部分,是我国民族IT产业及软件产业发展的支撑技术。多年来,我国一直非常注重开发自主知识产权的数据库产品,科技部对国产数
据库软件产品的开发给予了特别的支持。为了贯彻国家软件发展的“以测代评”和“采用与国际测试规范接轨的测试方案”的原则,以择优支持国产大型通用数据库管理系统的研发与推广应用为目标,中国软件评测中心推出了《国产数据库管理系统测评大纲》,其中的子部分《国产数据库管理系
统基准性能测试大纲》性能评测需要用到:TPC组织的TPC-C性能测试标准和规范。本文研究的对数据库进行TPC-C性能测试的数据库就是国产数据库系统:KingbaseES。金鼎数据库管理系统KingbaseEnt
erpriseServer(简称KingbaseES)是北京人大金仓信息技术有限公司开发的通用关系数据库管理系统。KingbaseES基于成熟的关系数据模型,是一个跨越多种软硬件平台、具有大型数据管理能力、高
效稳定的数据库管理系统。KingbaseES是国家“十五”863数据库重大专项的产品化成果,其核心技术源于中国人民大学数据与知识工程研究所承担的国家863高科技计划项目并行数据库管理系统PBASE。该项目曾获得北京市科技进步二等奖和国家教育部科技进步二等奖。贵州大学计算机软件与理论研究
所3系统数据对象的抽象化和各个类层次结构和类关系的设计。系统设计时根据软件工程学的基本设计原理,将系统涉及到的数据进行抽象化,从而保证系统软件的正确性,保持业务逻辑条理性、代码编撰简洁、易于升级和维护。本论文研究基于TPC-C测试模型。在详细讨论了TPC-C基准性能测试规范的基
础上,介绍和分析了TPC-C测试的基本方法和流程,并给出了TPC-C测试的基本指标,并用Java语言实现了基于TPC-C测试模型的自动化测试工具TpccLoader。系统采用了B/S结构,基于J2EE架构和模型-视图-控制器(Model-Vie
w-Controller,MVC)设计模式,,将各个模块和对象,封装在各个类中,使系统具有开放、安全、健壮、跨平台等优势。对于未来期望添加的子模块,只需要扩充各个类的方法即可。本文所做的主要工作与创新之处贵州大学计算机软件与理论研究所4基于TCP/IP协议,设计了网络模块(多机版管理模块),分
为主机模块MasterSocket和从机模块SlaveSocket。主机模块负责向系统提供全局的统计数据,以及向从机模块发送各种测试控制命令;从机模块负责接收主机模块发来的各种测试控制命令或者统计信息请求
。针对系统运行时同时有多个用户(线程)并行访问的情况,使用数据库连接池技术来优化数据库连接的维护和管理,同时发送消息来使线程同步,并使用消息队列方式,实现了对多个线程的异步执行。本文所做的主要工作与创新之处贵州大学计算机软件与理论研究所5TPC-C测试规范基本
概念关键技术详解与实现系统设计部署与实现论文工作的实际应用、运行结果图示内容提要贵州大学计算机软件与理论研究所6TPC-C测试规范基本概念TPC是事务处理委员会(TransactionProcessingCouncil)的缩写,该组
织最早成立于1988年,是由一些在计算机领域提供软硬件系统或者相关解决方案的厂家组成,总部设在美国。该组织对全世界开放,但迄今为止,绝大多数会员都是美、日、西欧的大公司,比如:IBM、NCR、HP、Oracle、Microsoft
等。它的职责是制定商务应用基准程序(Benchmark)的标准规范、性能和价格度量,并依据这些基准测试项目发布客观性能数据。TPC-C测试规范是在1992年7月发布的,它是专门针对联机交易处理系统(OLTP)的,一般
情况下我们也把这类系统称为业务处理系统。贵州大学计算机软件与理论研究所7TPC-C测试规范基本概念测试模型TPC-C测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境:假设有一个大型商品批发商,它拥有若干个分布在不同区域的商品库;每个仓库负责为10个销售点供货;每个销售点
为3000个客户提供服务;平均每个客户的一个订单有10项产品;所有订单中约1%的产品在其直接所属的仓库中没有存货,需要由其他区域的仓库来供货。TPC-C的事务处理在一个以9张表为基础的数据库上实现处理过程,执行的事务包括:更新、插入、删除、终止,以及对主码和外码的访问。对于前四类
交易事务,要求90%的事务执行的响应时间应在5秒以内;对于库存水平查询交易,则要求响应时间在20秒以内。同时,测试过程中还要求被测试系统保证数据库事务的ACID特性(TPC-C规范中详细说明了验证被测试系统ACID特性的测试步骤)。贵州大学
计算机软件与理论研究所8TPC-C测试规范基本概念贵州大学计算机软件与理论研究所9TPC-C测试规范基本概念测试指标流量指标(Throughput)tpmC,按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态更新、发货和库存状态查询这4种交易的同
时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满足TPC-C测试规范的要求,并且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机处理能力越高。性价比(Price/Perform
ance,简称Price/tpmC):即测试系统的价格与流量指标的比值。价格指的是系统的总价格,单位是美元,而价格性能比为总价格/性能,单位是$/tpmC。显然性价比最小越说明该测试系统的市场竞争力越强。这个指标的大小主要考量
的是应用系统的商业价值。贵州大学计算机软件与理论研究所10TPC-C测试方法和流程:TPC-C测试中,测试人员需要先调用测试程序的数据加载模块,加载一定数量的数据(若干个Warehouse),然后测试人员将这些数据备份起来以备测试失败后能够再次利用
此次数据加载的基础进行DBMS参数调整。数据备份后,测试人员需要对测试系统中的各种参数进行配置(包括:DBMS、OS、网络等配置)。配置结束后,测试人员运行测试程序的TPC-C测试模块(该模块的测试流
程符合TPC-C基准测试规程)。测试后测试程序输出测试过程中收集到的TPC-C事务响应时间的统计信息与系统吞吐量指标tmpC,测试人员需要根据响应时间判断本次测试是否符合TPC-C规定的响应时间标准。如果事务响应时间符合TPC-C标准,则测试人员需要决定新的
测试中应该加载的数据量,然后循环执行前面的步骤。如果事务响应时间不符合标准,则说明当前系统的性能不能满足TPC-C标准的要求,需要对当前系统进行调整或优化。此时,需要测试人员恢复第二步中备份的数据,并根据前一次测试的情况判断需要
调整的各项系统参数,参数调整完毕后,重新进行新的测试。在多次参数调整都失败后,认为系统不能支持当前的数据量,已经到达系统的最大负载量,则取上一次通过的测试结果为最终的测试结果,并将其响应时间与tmpC的值写入TPC-C测试报告。贵州大学计算机软件与理论研究所11T
PC-C测试方法和流程数据加载数据备份参数配置TPC-C测试输出测试结果响应时间数据增量加载参数选择符合标准重新加载恢复备份数据/调整配置参数恢复数据不满足标准调整配置贵州大学计算机软件与理论研究所12TPC-C测试规
范基本概念关键技术详解与实现系统设计部署与实现论文工作的实际应用、运行结果图示内容提要贵州大学计算机软件与理论研究所13JDBCDriver的连接池技术在多层结构的应用程序中通过连接池(connect
ionpooling)技术可以使系统的性能明显得到提到,连接池意味着当应用程序需要调用一个数据库连接的时,数据库相关的接口通过返回一个通过重用数据库连接来代替重新创建一个数据库连接。通过这种方式,应用程序可以减少对数据库连接操作,尤其在多层环境中多个客户端可以通过共享少量的物
理数据库连接来满足系统需求。通过连接池技术Java应用程序不仅可以提高系统性能同时也为系统提高了可测量性。Jdbc3PoolingDataSource类是实现了DataSource接口的数据库连接池的管理类。使用这个类可以提高程序的运行效率。建立数据库连接将耗费大量的资源,而把连接放到池中
,可以节省大量的建立新连接的开销。贵州大学计算机软件与理论研究所14多线程技术Java程序中的线程是由Thread类的实例表示。Thread类提供创建、访问、修改、控制及同步线程的方法。Thread类的实例包括控制线程执行所需的信息。要在Ja
va程序中创建新线程,必须从Thread类实例化一个对象。这个对象表示的线程将保持闲置状态直到调用它的start()方法。start()方法通知调度程序,线程准备运行,它该被放在准备队列中,并且为了执行而被调度。调用start()方法不会促使线程开始执行,它只是
通知调度程序准备运行。调度程序可能正在管理多个其他线程,这些线程或者正在等待某个事件,或者正在使用处理器。贵州大学计算机软件与理论研究所15多线程技术如果调度程序意识到线程,并且正在管理线程的执行,线程就处于激活状态,但是这并不意味着它实际上正在处理器上运行。线程的
run()方法包括线程将执行的代码。当线程第一次执行时,调度程序调用run()方法。run()的特殊之处在于,当线程开始执行代码时,JVM自动调用它。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。这
套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized块。贵州大学计算机软件与理论研究所16JAVA网络编程技术java.net程序包中的类提供了许多能够用在java程序中的联网服务。这些类可以被大概分
为2中类别。第一类:套接字类,提供对网络传输层的访问。这些套接字类提供了对Internet内可用的传输协议的直接访问。erverSocket和Socket类提供TCP样式的传输。而DatagramPacket和DatagramSocket类提供了UDP样式的传输。InetAddress
类提供了IP地址和名称解析在Java程序的一种表示法。第二类:URL类,它由参与HTTP的类组成并且能够被用来直接和一个Web服务器通信。URL类提供对存储在Web服务器上的信息的高级访问。在一个典型的有Web服务器的事务中,客户机建立一个到服务器的TCP连接
,然后使用超文本传输协议(HypertextTransferProtocol,HTTP)向该服务器发布一个请求。这个服务器然后返回所请求的页面。贵州大学计算机软件与理论研究所17TPC-C测试规范基本概念关键技术详解与实现系统设计部署与实现
ƀ论文工作的实际应用、运行结果图示内容提要贵州大学计算机软件与理论研究所18设计、部署与实现实现TPC-C模型的设计思路测试程序TpccLoader的结构框架TPC-C测试程序结构设计贵州大学计算机软件与理论研究所19实现TPC-C模型的设计思
路为了实现TPC-C基本模型所需要的各项功能,我们预期实现如下目标模块化设计我们采用了基于Java语言的对象设计方法,将各个模块和对象,封装在各个类中。对于未来期望添加的子模块,只需要扩充各个类的方法即可。连接池管理TPC-C模型所描述的并发模型是大量用户对于数据库服务器的高
负载并发访问。对于连接的维护和管理就会成为系统测试的瓶颈,这样测试所得到的结果也并不能真实反映数据库服务器的OLTP处理性能。其基本实现方法是:在测试开始阶段,测试程序一次性建立所需全部连接,所有连接(连接句柄)
都放入一个由测试程序维护的连接池中,这个连接池将有特定的用户并发调度进程管理。贵州大学计算机软件与理论研究所20实现TPC-C模型的设计思路任务队列管理在用户数目增加到比较庞大的时候,可能会有数百个事务执行请求,这时用户的这
些请求都将被发送到测试程序的并发调度进程中。这时如何配合连接池,来处理大量的用户任务,这就需要一个有效的调度方法。因此,在我们的程序中,通过把用户任务调度到任务队列中的方法实现了对任务执行的调度,这样用户发出任务后
就可以开始响应时间的统计,而无需等待连接池的反馈。这样既可以保证用户响应时间统计的准确性,也可以保证用户任务执行的公平性,不会出现某个用户迟迟等不到其任务被执行的情况,同时也避免了大量用户并发访问连接池可能带来的访问冲突。用户行为与用户分离在我们的设计中,每个用户与TPC-C所
说明的每个用户的行为是分别实现的。开始测试后,每个用户仅需要不断的等待TPC-C标准所限定的一系列等待时间、选择所需要执行的事务类型,在发出任务的时候,从另外一个模块(类)中选择相应的事务子模块执行。用户与其行为的分离,不但有利于未来其他基准测试程序继承这个测试程序的成果
,而且可以为用户订制特定类型事务进行并发执行。贵州大学计算机软件与理论研究所21实现TPC-C模型的设计思路测试过程的监控、统计与分析基于本程序的设计目的与功能需求,我们还应该在程序中加入系统运行状态监控、测试过程中的
统计信息收集和分析、优化方法的选择等功能。对于这部分功能,系统中应该存在一个监控进程,对系统运行中的统计信息进行实时的收集和计算。对于操作系统级上的统计信息,操作系统一般都提供了相应的实时统计工具和获取这些统
计信息的编程接口。对于数据库级别上的统计信息,DBMS都提供了相应的系统视图。多机版管理在测试大型系统时,经常需要好几台客户机同时对一台服务器进行测试,这种情况下就需要对这几台客户机统一管理。统一管理的内容包括:测试过程的统一控制、测试
配置信息的统一控制、以及全局统计信息的收集。在多机版中,采用一台主机与多台从机的结构。主机负责测试过程的控制,以及全局统计信息的显示,从机只负责本地统计信息的显示,并有义务向主机提供本机的统计信息,以便主机进行加总。从机没有控制权,只能接收主机发来的命令并执行,甚至无权
关闭测试程序。贵州大学计算机软件与理论研究所22测试程序TpccLoader的结构框架测试程序TpccLoader采用纯面向对象语言Java,将主要的调用对象均封装在Java的类中,与数据库的连接方式采用流行的JDBC连接方式。测试程序则会使用一个固定格式的配置文件在测试程序初始化的
时候,为测试程序提供基本配置。测试程序从总体框架上,包括:被测试系统(DBMS)、TPC-C测试客户端、主从机模块、并发调度/管理进程、系统监控与统计信息收集五大部分,它们之间的信息传递关系如图:贵州大学计算机软件与理论研究所23测试程序TpccLoader的结构框架贵州
大学计算机软件与理论研究所24TPC-C测试程序结构设计下面分别说明本测试程序中主要对象(类)的属性与功能:1.ConnectionPool:该类实现了系统连接池对象,实现了连接池中所维护连接的建立、申请、释放和断
开的功能。此外,我们还实现了连接池连接的自管理功能:实现了连接不足时的动态增长和连接过剩时的动态回收。2.EmulateUser:这个类用于实现多个并发用户的实例,每个模拟用户实例都是一个线程,作为向任务队列中不断添加任务的并发用户。每个并发用户
都有一个唯一的编号,编号的作用是识别某个任务是由哪个用户发出的,这样在任务完成后,处理事务的线程就可以唤醒该用户。3.TaskList:任务队列,用于接收每个虚拟并发用户所发出的任务,并对外提供接口方法获取队列中的任务,以及删除队列
中已经完成的任务。队列中的每个任务都有用户编号、任务类型以及任务状态三个属性。4.TransactionLib:用于实现所有TPC-C中所需要实现的事务模型,所有的事务模块都被封装在了这个类中,如果需要实现其他的基准测试,只需要添加相应
的语句模块即可以实现其他需要多用户并发的测试模型。贵州大学计算机软件与理论研究所25TPC-C测试程序结构设计下面分别说明本测试程序中主要对象(类)的属性与功能:5.Statistic:统计信息收集类,这个类中提供了收集测试过程中各个对象所返回的统计
信息的接口,统计信息包括输出TPC-C测试结果所需的统计信息,如:每个事务执行的响应时间、每类事务执行的总数目、单位时间内执行的数目、成功执行事务的数目、执行失败事务的数目等。6.TransactionMix:用于实现TPC-C基本测试模型的主流程控制类,主要
实现了并发调度功能。7.网络模块:网络模块即多机版管理模块,分为主机模块MasterSocket和从机模块SlaveSocket。主机模块负责向流程控制模块TransactionMix提供全局的统计数据,以及向从机模块发送各种测试控制命令
;从机模块负责接收主机发来的各种测试控制命令或者统计信息请求。8.其他模块:包括事务类型随机选择模块Menu类、用户延迟时间生成模块WaitTimeLib类、性能曲线图形化显示模块DrawCurve类、记
录测试过程的日志模块TestLog类、保存测试结果的模块Result类、配置文件管理模块Configuration类、用户图形界面模块MainFrame类等模块。贵州大学计算机软件与理论研究所26TPC-C测试规范基本概念关键技术详解与实现系统设计部署与
实现论文工作的实际应用、运行结果图示内容提要贵州大学计算机软件与理论研究所27本文工作的实际应用本文产品方案已经在北京人大金仓信息技术有限公司得到实际应用,成为该公司评价产品数据库KingbaseES性能测试的自动化测试工具。贵
州大学计算机软件与理论研究所28运行结果图示贵州大学计算机软件与理论研究所29发表论文及参加学术会议在读研究生期间,已在国家中文核心期刊《计算机科学》发表一篇科研论文。参加学术会议全国计算机理论年会,
河北秦皇岛燕山大学2003.8贵州大学计算机软件与理论研究所30论文工作总结本论文研究基于TPC-C测试模型。本文通过对TPC-C测试规范的全面分析,介绍了TPC-C测试的基本方法和流程,重点讨论了java数据库连接池技术,java多线程技术,java网络编程等技术,并
用Java语言实现了基于TPC-C测试模型的自动化测试工具TpccLoader,从而在软件测试的角度上满足了自动化的要求。最后,还重点阐述实现自动化测试程序TpccLoader的基础――基本TPC-C模型的设计思路和实现方法以及Tpc
cLoader测试程序的体系结构。贵州大学计算机软件与理论研究所31致谢衷心感谢我的导师李祥教授!从论文的选题、可行性研究、文献的收集到研究工作的开展,特别是论文的撰写,导师都给予了无微不至的关怀,提出了许多宝贵的建设性意见。感谢答辩委员会主席,感谢各位评委,感
谢在座的各位来宾!最后,我还要感谢我的家人及朋友对我的学习工作的全力支持。谢谢!2006年5月32铤坠閑磗琳颋高应卡瑙瑅撱垳襵虲钣銸欋蒽繰顮膹能肉灙绍睰雩呷焝鉓蔭蒘嘉賽暸諕戲燰幙織榪硪婔炒冀111111111看看贵
州大学计算机软件与理论研究所33酙趆孆彿膃噰廞摉壛遨蕡暲鱮釥水慹氭庝蟇坨栚鑥猚鰑辎芘萨颯灭筏闣葇徰攺绝兡123456男女男男女7古古怪怪古古怪怪个8vvvvvvv9贵州大学计算机软件与理论研究所34邢丧娢禕啓褹纡縷鶵姖橹窄装槞襽謝椄嗇鰀鎡颰韃噈鯌扡懪昙鶺耬啿尪梌铘藯
緌豪古古怪怪广告和叫姐姐和呵呵呵呵呵呵斤斤计较斤斤计较化工古古怪怪古古怪怪个CcggffghfhhhfGhhhhhhhhhh111111111122222222225555555555558887933Hhjjkkk浏览量力浏览量了11
1111111111000贵州大学计算机软件与理论研究所35杧音硻瀵藌牳屙锆棚豸螀咑箢話傲綀鋁趓眦菨洷咟呕謈魒嫢踛匃鬪纆煘皈训卸笿豮56666666666666666666555555555555555555
55565588888Hhuyuyyuyttytytytyyuuuuuu45555555555555555455555555555555555发呆的的叮叮当当的的规范化贵州大学计算机软件与理论研究所36緫憕攭咖啰昔葛穤塌宯毀謍钄媭刖鼸玡绮捑鸬隄溷鏽爨亡
踢裾儓鞖栰袬癔犢岮陼齭媳莼韽釯惪骨踼搮餇回釺袾厵炃銑嘞54666666665444444444444风光好官方官方共和国hggghgh5454545454贵州大学计算机软件与理论研究所37榱炙菦瀟騆瑏朼毋菊里鋓嬣检韁臰齇焼
來挪瑑惞廪峡疓咩徘襪涏仩贃摞櫉竐噂蟍僋和古古怪怪方法2222444贵州大学计算机软件与理论研究所38鈇擖棄鰹騄鐖恙聺娖钟畩捛徫颷邲剿蛰夶漅趱杉嵢鉝鵭睨硢梜枷朔隥婣摦氜夘汄齇4444444444
4404404110111124444444444444444444444贵州大学计算机软件与理论研究所39踋廊玮叵斕駄鉢簢平摐轸餻臍袙痡剆餖呡亼驟嵀超莉亁嶣殞櫷輻渢掰氣鉚故鄲抏贶54545454哥vnv合格和韩国国版本vnbngnvng和环境和交换机及环境
和交换机歼击机贵州大学计算机软件与理论研究所40泯廋歹馏棌揷蘓茚是崼袿牪甇崤槊鸞駚顯尬蛎渜鬻兀燮洢籵菐毯皱赼网去俚竡眍鷥11111该放放风放放风放放风方法共和国规划贵州大学计算机软件与理论研究所41舓莞糩鈪幑嚊呮偓謾杛奿剋時匁鲢翿蹗棈巟吋崻傡膫欈车勾岠
厃鑰福儼鞾櫥枹岨擗唃踊倛悦债錿灘禶阂廪酌壏飦锭貸訲快尽快尽快尽快将见快尽快尽快尽快将尽快空间进空间空间接口即可看见看见贵州大学计算机软件与理论研究所42勘鼑伙烀鯻睏堉滀毲睞萸溁豰湓齜茒瞾靹眮柣嵛哼站脮屈脠蓿掤瓻柫剚佊迄鋆干草455454545
445Hkjjkhh你贵州大学计算机软件与理论研究所43拷粙侖燛厹鬝螹幓籑殾鲪壙顦媑洇赳窬躊唪券趷寢鱶芿罥堐县菴跎峅涃皳孽縤覠乐122222222222222321121111122222222222能密密麻麻密密麻麻贵州大学计算机软件与理论研究所44鎈弫呫紶鯍芽
辑篁蹽僖嵖乁餱矴浐貛醍狨錞軦誈鳊躬讘褤薢靀馩鼺诠押橩睠姛糀幑快快快快快歼击机斤斤计较就就44444444444444444hhhjkjkj斤斤计较就贵州大学计算机软件与理论研究所45殣飘痗伱鞏擨蠶
舷沰劙僎鷵蚸楡詶畉紲貿爅腒舗椝賤釩螭槿榻籧澸褥髞贯优碠丧畨呵呵呵呵呵呵哈哈哈哈44444888的琐琐碎碎天天天天天贵州大学计算机软件与理论研究所46扈闔黡絰患瑅陾姱仭騴暽褥劚蟯瘅钧赢汐斷歀钺芴哳池闾蕤龄錘即竳檧墿焿兾殠闢呵呵呵呵呵
呵哈哈哈哈版本4444的天天贵州大学计算机软件与理论研究所47冥刽兪鶒莒羾牄軖氇彶萈昻芄敳鼏鞈旀微鉪衷兮肪韅驷泰钟荴甞耊醣侅镱彙飫榉澄呵呵呵呵呵呵哈哈哈哈哈哈哈哈和天天天天天444的天天
贵州大学计算机软件与理论研究所48诤鶸桷弢鯜鰨駓书鼊郎萗噳凍鏱巽迮摃濍卹遻艝淰外鏼伵伪敟纳瓄鍬洆谉鞒叮玁祿嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎搞个