文档介绍:该【TPCE测试程序设计与实现剖析 】是由【雨林书屋】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【TPCE测试程序设计与实现剖析 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。精选文档
精选文档
莇1
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
TPC-E测试程序的设计与实现
白箱测试部龙涛(flybird_******@)
大纲:跟着新的事务办理性能测试标准TPC-E的公布,已经有愈来愈多的企业宣告了自己的测试结果。在严格依照官方文档中给出的测试规范的前提下,如何搭建TPC-E测试环境,并实现详细的测试应用程序,结合这两个问题,本文详细介绍了达梦数据库TPC-E测试程序的架构设计和详细实现流程。
背景介绍
2007年3月19日,总部在美国的事务办理性能委员会(TransactionProcessing
PerformanceCouncil)宣告同意了名为TPC-E的新标准以代替自1992年沿用到现在的TPC-C标准。TPC-E(大型企业信息服务测试标准程序),作为大型企业(Enterprise)信息服务的基准程序,与TPC-C相同,TPC-E的测试结果也主要有两个指标:性能指标(tpsE,transactionspersecondE)和性价比(美元/tpsE)。此中,前者是指系统在执行多种交易时,每秒钟可以办理多少交易,其指标值越大越好;后者则是指系统价格与前一指标的比值,数值越小越好。
新的测试包含了一个联机事务办理系统(OLTP)性能解析,对各种软硬件平台进行模拟现代IT环境的压力测试。TPC-E不是一个纯学术基准,它模拟的是一个经纪企业的流量和交易模式。该测试模拟了一系列后端办理数据和经纪行前端客户在交易企业的典型行为--帐户盘问,在线交易和市场调研。该模拟经纪行也与外界的金融市场相联系,依据市场变化执行指令并更新相关的帐户和市场信息。
与TPC-E对比,TPC-C不过针对一种模制定单录入与销售环境丈量每分钟
商业事务(tpmC)吞吐量,丈量的事务种类也只有四种。两对比较,TPC-E所采纳
的商业模型更为人们熟****也更简单理解,也包含了更多的事务种类。
从实质测试过程上看,TPC会给出基准程序的标准规范(Standard
Specification),参测的厂商则依据TPC组织宣告的规范标准,最优地构造出自己的系统,使用最优的平台和最高效的应用程序。为了保证测试结果的客观性,参测厂商一定提交给TPC一套完好的报告,包含被测系统的详细配置、分类价格
和包含五年保护花费在内的总价格等,该报告一定由TPC受权的审查员核实。
一个值得注意的变化是,在性能指标中,时间单位从TPC-C中的以分钟计变成
TPC-E中的以秒计。
2007年7月17日,Unisys在业内率先公布了针对TPC-E基准进行测试的首
批基准测试结果。该测试是在UnisysES7000/one企业级服务器和MicrosoftSQL
Server2005企业版中进行的。测试结果建立了ES7000企业级服务器在Microsoft
Windows环境中的性能、经济性和可扩展性等方面当先同类的优异地位。此后,IBM、惠普和戴尔也先后公布了基于TPC-E基准测试结果。
系统构造
TPC-E模拟了真实世界中一个证券企业和那些贸易、会计盘问和市场研究方面的客户之间的交易。这个企业会和金融市场产生联动,并基于客户的利益执行指令及更新那些账户信息。在TPC-E标准中,客户的数目可以代表不一样规模的
商业事务,把十种商业事务混杂在一起执行。
TPC-E基准中主要定义了表1中的列举的33个表,详细测试的时候,依据
不一样的数据库管理系统和数据规模,可能需要建立一些辅助表和索引:
分类
表名
中文表名
前缀
ACCOUNT_PERMISSION
客户账目允许表
AP_
CUSTOMER
客户信息表
C_
CUSTOMER_ACCOUNT
客户账目表
CA_
CUSTOMER_TAXRATE
客户税率表
CX_
CUSTOMER
HOLDING
客户股票拥有表
H_
客户类
客户股票拥有历史
HOLDING_HISTORY
HH_
表
HOLDING_SUMMARY
客户股票拥有总表
HS_
WATCH_ITEM
客户观察证券列表
WI_
WATCH_LIST
客户观察证券表
WL_
BROKER
BROKER
经纪人表
B_
精选文档
精选文档
莇2
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
经纪人类
CASH_TRANSACTION
现金交易表
CT_
CHARGE
交易花费表
CH_
COMMISSION_RATE
佣金率表
CR_
SETTLEMENT
结算表
SE_
TRADE
交易表
T_
TRADE_HISTORY
交易历史表
TH_
TRADE_REQUEST
交易央求表
TR_
TRADE_TYPE
交易种类表
TT_
COMPANY
企业表
CO_
COMPANY_COMPETITOR
企业竞争者表
CP_
DAILY_MARKET
平常市场统计表
DM_
EXCHANGE
交易所表
EX_
FINANCIAL
财政表
FI_
MARKET
INDUSTRY
行业表
IN_
交易所类
LAST_TRADE
最后交易表
LT_
NEWS_ITEM
新闻项表
NI_
NEWS_XREF
企业新闻参照表
NX_
SECTOR
企业领域表
SC_
SECURITY
证券表
S_
ADDRESS
地址表
AD_
DIMENSION
STATUS_TYPE
交易状态表
ST_
要素类
TAXRATE
税率表
TX_
ZIP_CODE
邮政编码表
ZC_
精选文档
精选文档
莇3
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
表1TPC-E基准中的表
TPC-E标准中定义的事务有12种,每个事务对应数据库管理系统中的一个或多个带输入和输出参数的储存过程,单个储存过程叫做一个事务帧。事务的种类有以下几种:
Broker-Volume:经纪人交易统计事务,包含1个事务帧;
Customer-Position:客户价值统计事务,包含3个事务帧;
Market-Watch:市场观察事务,包含1个事务帧;
Security-Detail:证券信息事务,包含1个事务帧;
Trade-Lookup:交易盘问事务,包含4个事务帧;
Trade-Order:交易执行事务,包含6个事务帧;
Trade-Status:交易状态事务,包含1个事务帧;
(8)Trade-Update:交易修正事务,包含3个事务帧;
Market-Feed:市场追踪事务,包含1个事务帧,该事务由TradeOrder事务引起;
(10)Trade-Result:交易结果更新事务,包含6个事务帧,该事务由TradeOrder
事务引起;
(11)Data-Maintenance:数据保护事务,包含1个事务帧,每60秒执行一次;
(12)Trade-Cleanup:交易清理事务,包含1个事务帧,测试开始时执行一次,
不强迫使用。
前8种事务由证券企业执行,第9-10号事务由交易所执行,最后两种事务属于数据库保护事务,与客户操作没关。
逻辑架构中的各个组件,如图1所示,包含Driver、TierA和TierB,此中
TierA和TierB合起来叫做SUT(SystemUnderTest待测试系统)。图顶用三种颜
色表记了不一样内容:亮色部分代表TPC官方供给的程序,在测试中强迫要求使
用;黄色部分代表商用组件,比方数据库管理系统,数据库驱动程序;紫色部分
代表一定由TPC-E测试的主办者实现的内容。
测试主办者实现的内容主要包含以下几点:
精选文档
精选文档
莇4
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
(1)Driving和Reporting:事务模拟驱动架构和统计报告,即Driver层测试程
序的总控制模块(包含读取设置参数,建立各种队列、网络连接和工作线程等)
和波形图以及报表显示模块;
(2)CE、MEE和DM:事务模拟器,在官方供给的EGenDriverCE、
EGenDriverMEE和EGenDriverDM源代码包中分别实现了客户事务、交易所事务和数据库保护事务的随机产生类(注意:随机产生的是对应事务的储存过程的详细输入参数信息构造体),但是,如何调用这些类,如何把随机产生的事务封装成对应的可识其余网络信息,如何组织和管理众多的随机事务,并记录每个事务的开始时间和接收到返回信息的时间,都一定由测试主办者实现;
(3)EGenDriverConnector:驱动连接器,负责把随机产生的事务纷至沓来的
发送出去,并接收返回信息;
(4)EGenTxnHarnessConnector:事务连接器,负责接收网络信息,变换成对应的事务输入信息构造体,而后调用执行接口,并将返回信息经过网络发送到上层。
精选文档
精选文档
莇5
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
图1测试架构的组件定义
(5)FrameImpletion:事务帧执行器,负责调用指定事务对应的储存过程,传达输入信息,并获得返回信息。每个事务对应数据库管理系统中的一个或多个储存过程,每个单独的储存过程叫做一个事务帧。
(6)DatabaseLogic:测试主办者所写的事务帧,比方储存过程。
图2是TPC-E测试标准的一个物理架构实例图。Driver层代表的是事务模
拟和驱动层,可以把它看作是不一样的客户在做各种不一样的事务操作的模拟器,模
拟的客户操作纷至沓来的从Driver层经过网络发送到下一层。TierA层代表是与
数据库进行连接的应用服务器层,它从网络接收Driver层发送来的各种操作指令,而后连接详细的数据库服务器,经过调用每种事务对应的储存过程来达成客户操作。TierB层代表的是数据库服务器层,可以选择SQLServer、Oracle也许达梦数据库。自然,这不过一个大体的架构,在详细实现时,每一层其实不必定要
运转在不一样的主机上,甚至在实现测试程序的时候,可以把相邻的层整合到一起。
精选文档
精选文档
莇6
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
图2TPC-E测试标准物理架构实例图
测试程序的设计与实现
TPC官方供给了一些强迫使用的代码和测试程序实现方法和规则的文档,图3给出了官方供给的测试实现样例总览图,每一种颜色代表的意义和上边提到的相同。
依照该图,将测试程序分三个部分来实现:TPCEDriver客户端程序、CEServer应用服务器程序和MEEServer应用服务器程序。TPCEDriver客户端程序模拟客户操作,负责产生随机事务信息并发送到CEServer服务器程序和MEEServer服务器程序,其余,还要传递TMEEIndexTable构造体给CEServer,里面保存了一
精选文档
精选文档
莇7
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
组或多组TPCEDriver客户端的“主机名”和“端口号”,CEServer在办理TradeOrder
事务时要用到该信息(平常状况下保存是本机的信息);CEServer模拟证券公
司操作,执行CCE对象和CDM对象产生的事务,并返回输出信息,对于
TradeOrder事务的办理比较特别,不但要返回输出信息,还要依据执行结果产生
TradeRequest信息,而后依据TMEEIndexTable构造体中指定的地址,将它发送
出去,由TPCEDriver客户端程序接收办理(用于CMEE对象产生随机事务);
精选文档
精选文档
莇8
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
MEEServer模拟交易所操作,负责办理
CMEE
对象产生的事务,并返回输出信
精选文档
精选文档
莇12
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
息。
精选文档
精选文档
莇12
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
图3TPC-E测试实现样例总览图
TPCEDriver客户端程序的功能逻辑主要包含以下几点:
(1)建立CCE、CMEE和CDM对象;
(2)继承CCESUTInterface、CMEESUTInterface和CDMSUTInterface类,名为
CSUTInstance,该继承类负责把CCE、CMEE和CDM对象产生的随机事务信息
构造体保存到特定的队列中;
(3)定义队列构造体SUTQueue,建立一个或多个队列,要求是FIFO(先进先出)
种类;
(4)将指定的CSUTInsance对象与SUTQueue队列对象进行关系;
(5)将指定的CCE、CMEE或CDM对象与CSUTInsance对象进行关系;
(6)调用CDM对象的DoCleanupTxn( )产生一个TradeCleanup事务信息构造体,
发送到应用服务器执行,撤消或中断全部未执行完的事务,也可以不执行;
(7)建立网络监听服务线程,负责接收CEServer执行TradeOrder事务返回的
TradeRequest信息(用于CMEE对象),并保存到辅助队列中;
(8)建立CCE、CMEE和CDM对象的模拟驱动线程,纷至沓来的产生随机事务
信息,并保存到特定的队列中;
(9)建立事务发送线程,从指定队列中获得随机事务信息构造体,并发送给
CEServer或MEEServer;至于接收返回信息的过程,有同步和异步两种模式:
使用同步模式时,事务发送线程会等候,直到发送的事务接收到返回信息,才连续发送下一个事务;使用异步模式时,事务发送线程不等候,直接发送下一个事务。为了减少建立接收返回信息线程的数目,提升网络通信性能,并且方便一致管理,本测试程序中对于网络接收过程都调用了一致的达成端口模型;(10)每秒统计一次执行结果,输出波形图,显示统计结果。
注意事项:
(1)CMEE对象依赖于CCE对象产生的TradeOrder事务的返回信息,只有当
CCE对象产生的TradeOrder事务被执行后,将CEServer应用服务器发送的
TradeRequest信息传达给CMEE对象的SubmitTradeRequest(PTradeRequest
pTradeRequest)函数接口,才能产生新的MEE事务信息;别的,CDM对象每
精选文档
精选文档
莇11
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档
分钟只好产生一个Data-Maintenance(数据保护事务),并且要求一定在
55秒
内执行达成。
(2)每个事务模拟类CCE、CMEE和CDM的对象只好对应一个事务队列;每
个事务队列都是FIFO种类的;每个事务发送线程一定总是从同一个事务队列中
取事务。
图4显示了TPCEDriver的驱动模型图:
图4TPCEDriver驱动模型图
CEServer和MEEServer程序已经由微软企业供给,因为这两个程序是微软
企业特地为SQLServer2005数据库管理系统开发的,因此还需要更正数据库连
接(ODBC方式)和操作的部分,以适应其余的数据库管理系统。
精选文档
精选文档
莇12
袇肁
莄薃
芀蒄
莇蒇
肄肈
螁
精选文档