tp网站程序-TPCE测试程序的设计与实现分析.doc 13页

TPCE测试方案设计与实现分析 TPCE测试方案设计与实现分析 盒子测试部概要 龙涛(flybird_lt@):随着新的业务代理性能测试标准TPC-E的发布,越来越多的企业宣布了自己的测试方案。检测结果。 在严格遵循官方文档给出的测试规范的前提下,如何搭建TPC-E测试环境并实现详细的测试应用。 本文结合这两个问题,详细介绍了大盟数据库架构设计的TPC-E测试方案以及详细的实现过程。 背景介绍 2007年3月19日,总部位于英国的事务处理性能委员会宣布批准了一项名为TPC-E的新标准,以取代从1992年沿袭至今的TPC-C标准。 TPC-E(大公司信息服务测试标准程序)作为小公司(企业)信息服务的基准程序,与TPC-C相同。 TPC-E的测试结果也有两个主要指标:性能指标(tpsE,每秒交易数E)和成本效益(USD/tpsE)。 其中,前者是指在执行多个事务时,系统每秒可以申请多少个事务。 指标值越大越好; 后者是指系统价格与前一个指标的比率。 该值越小越好。

新测试包括在线事务处理系统(OLTP)性能分析以及各种软硬件平台的压力测试,以模拟现代IT环境。 TPC-E并不是一个纯粹的学术基准,它模拟了券商的流程和交易模式。 该测试模拟了一系列典型的交易公司前端代理数据和经纪后端客户行为——账户查询、在线交易和市场监控。 模拟经纪还连接外部金融市场,履行订单并根据市场变化更新相关账户和市场信息。 与TPC-E相比,TPC-C仅测量模拟订单输入和销售环境的每分钟商业交易(tpmC)吞吐量,并且仅测量四种类型的交易。 相比之下,TPC-E采用的业务模型更熟悉、更容易理解,也包含了更多的业务类型。 从实际测试过程来看,TPC会提供基准程序的标准规范。 参与的制造商将根据TPC组织公布的规范和标准,使用最优的平台和最高效的应用来优化构建自己的系统。 为了保证测试结果的客观性,参与厂商必须向TPC提交完整的报告,包括被测系统的详细配置、分类价格以及包含两年保护费用的总价格等。报告必须经过TPC授权的审查员检查。 一个值得注意的变化是,性能指标中的时间单位从TPC-C中的分钟改为TPC-E中的秒。

tp网站程序-TPCE测试程序的设计与实现分析.doc 13页

2007年7月17日,Unisys公布了业界第一批TPC-E基准测试结果。 该测试是在 Unisys ES7000/一台企业服务器和 Microsoft SQL Server 2005 企业版上进行的。 测试结果确立了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_CUSTOMERHOLDING 客户持股表 H_客户类别 客户持股历史 HOLDING_HISTORYHH_表 HOLDING_SUMMARY 客户持股总计表 HS_WATCH_ITEM 客户查看期货列表 WI_WATCH_LIST 客户查看期货表 WL_BROKERBROKER 经纪商表 B_broker类别 CASH_TRANSACTION现金交易表 CT_CHARGE 交易费用表 CH_COMMISSION_RATE 佣金费率表 CR_SETTLMENT 结算表 SE_TRADE 交易表 T_TRADE_HISTORY 交易历史表 TH_TRADE_REQUEST 交易请求表 TR_TRADE_TYPE 交易类型表 TT_COMPANY 公司表 CO_COMPANY_COMPETITOR 公司竞争对手表 CP_DAILY_MARKET 每日行情统计表 DM_EXCHANGE 交易所表 EX_FINANCIAL 财务表 FI_ MARKETINDUSTRY 行业表 IN_Exchange class LAST_TRADE 最后交易表 LT_NEWS_ITEM 新闻项目表 NI_NEWS_XREF 公司新闻参考表 NX_SECTOR 公司字段表 SC_SECURITY 证券表 S_ADDRESS 位置表 AD_DIMENSIONSTATUS_TYPE 交易状态表 ST_Element 类 TAXRATE 税率表 TX_ZIP_CODE 邮政编码表 ZC_Table 1 TPC-E 基准中的表 有 12 个TPC-E 标准中定义的事务类型。 每一笔交易对应数据库管理系统中一个或多个具有输入输出参数的存储。 过程,单个存储过程称为事务框架。

tp网站程序-TPCE测试程序的设计与实现分析.doc 13页

交易类型如下: Broker-Volume:Broker交易统计交易,包含1个交易帧; Customer-Position:客户价值统计交易,包含3个交易框; Market-Watch:市场观察交易,包含1个交易框架交易框架; Security-Detail:证券信息交易,包含1个交易框架; Trade-Lookup:交易查询交易,包含4个交易框; Trade-Order:交易执行交易,包括6个交易框架; Trade-Stats:交易状态交易,包含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(System Under Test)。

图中上方用三种颜色代表不同的内容:亮色部分代表TPC官方提供的程序,测试时必须使用; 黄色部分代表商业组件,如数据库管理系统、数据库驱动程序; 紫色部分代表TPC-E测试主办方必须实现的内容。 测试主办方实现的内容主要包括以下几点: (1) Driving and Reporting:交易模拟驱动架构和统计报告,即Driver层测试程序的整体控制模块(包括读取设置参数、建立各行、网络连接)和工作线程等)以及波形图和报告显示模块; (2)CE、MEE、DM:交易模拟器,分别实现官方提供的 EGenDriverCE、EGenDriverMEE、EGenDriverDM 源码包中的客户交易、交易所交易和数据库。 保护随机生成的交易类(注:随机生成的是详细的交易类)交易对应的存储过程的输入参数信息结构),但是如何调用这些类以及如何将随机生成的交易封装成相应的可识别的网络信息,如何组织和管理许多随机交易,并记录每个交易的开始时间交易及收到返回信息的时间必须由测试主办方执行; (3) EGenDriverConnector:驱动连接器,负责将随机形成的交易路由不断地发送出去并接收返回信息; (4) EGenTxnHarnessConnector:交易连接器,负责接收网络信息tp网站程序,转换为对应的交易输入信息结构,然后调用执行套接字,并将返回信息发送给下层。

tp网站程序-TPCE测试程序的设计与实现分析.doc 13页

图1 测试框架的组件定义 (5)FrameImpletion:事务框架执行器,负责调用指定事务对应的存储过程,传递输入信息,获取返回信息。 每个事务对应数据库管理系统中的一个或多个存储过程,每个单独的存储过程称为事务框架。 (6)DatabaseLogic:测试发起者编写的事务框架,例如存储过程。 物理结构 图2是TPC-E测试标准的化学结构示例。 Driver层代表事务模拟和驱动层。 它可以看作是一个模拟器,不同的客户在其中执行各种交易操作。 模拟的客户操作从驱动层不断发送到下一层。 TierA 层代表连接到数据库的应用服务器层。 它从网络接收Driver层的各种操作指令,然后连接到详细的数据库服务器,通过调用每笔交易对应的存储过程来完成客户操作。 TierB层代表数据库服务器层,可以选择SQLServer、Oracle、大盟数据库。 当然,这只是一个粗略的架构。 详细实现时,每一层不一定必须在不同的主机上运行。 即使在实施测试程序时,相邻层也可以集成在一起。 图2 TPC-E测试标准化学框架示例图。 测试程序的设计和实施。 TPC官方提供了一些强制应用代码以及测试程序实现方法和规则的文档。 图3给出了官方提供的测试实现示例的概览。 每种颜色所代表的含义与上述相同。

tp网站程序-TPCE测试程序的设计与实现分析.doc 13页

根据该图,测试程序分为三部分来实现:TPCEDriver客户端程序、CEServer应用服务器程序和MEEServer应用服务器程序。 TPCEDriver客户端程序模拟客户操作,负责形成随机交易信息并发送给CEServer服务器程序和MEEServer服务器程序。 另外,它还将TMEEIndexTable结构传递给CEServer,CEServer保留TPCEDriver客户端的一组或多组“主机名”。 以及“端口号”,CEServer在申请TradeOrder交易时会使用该信息(通常保留本地信息); CEServer模拟证券公司的操作,执行CCE对象和CDM对象引发的交易,并返回输出信息,TradeOrder交易的代理比较特殊。 它不仅需要返回输出信息,还根据执行结果生成TradeRequest信息,然后根据TMEEIndexTable结构体中指定的地址发送出去,TPCEDriver客户端程序接收代理(用于CMEE对象形成随机交易); MEEServer模拟交换操作,负责处理CMEE对象形成的交易,并返回输出信息。 图3 TPC-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) 建立网络窃听服务线程,负责接收执行TradeOrder交易时CEServer返回的TradeRequest信息(对于CMEE对象),并保存到帮助队列中; (8)为CCE、CMEE和CDM对象建立模拟驱动线程,不断生成随机交易信息,并保存在特定队列中; (9) 建立交易发送线程,从指定队列中获取随机交易信息结构并发送给CEServer或MEEServer; 至于接收返回信息的过程,有同步和异步两种模式:使用同步模式时,交易发送线程会等到发送的交易收到返回信息后,才继续发送下一个交易; 使用异步模式时,交易发送线程不等待,直接发送下一个交易。

为了减少接收返回信息所需的线程数量,提高网络通信性能,方便一致性管理,本测试程序对网络接收进程调用一致性端口模型; (10) 每秒统计一次执行结果,并输出显示统计结果的波形图。 注:(1)CMEE对象依赖于CCE对象形成的TradeOrder交易的返回信息。 只有当CCE对象形成的TradeOrder交易被执行时,CEServer应用服务器发送的TradeRequest信息才会被传达给CMEE对象的SubmitTradeRequest(PTradeRequestpTradeRequest)函数。 只有通过socket才能生成新的MEE交易信息; 另外,CDM对象每分钟只能生成一个Data-Maintenance(数据保护事务),并且必须在55秒内完成。 (2) 每个事务模拟类CCE、CMEE和CDM对象只能对应一个事务队列; 每个事务队列都是先进先出(FIFO)类型的; 每个事务发送线程必须始终从同一事务队列中获取事务。 图4为TPCEDriver的驱动模型图: 图4 TPCEDriver驱动模型图及MEEServer应用服务器程序 CEServer和MEEServer程序早已由微软提供。 由于这两个程序是微软专门为SQLServer2005数据库管理系统开发的,所以还是需要的。 修改数据库连接(ODBC方式)和操作部分,以适应其他数据库系统。

图5 CEServer执行Broker-Volume事务流程图 图5所示为CEServer程序执行Broker-Volume事务流程图,CBaseServer是CCEServer和CMEEServer的泛型,通过调用socket的ListenAndDispatchThread(void*ptr)函数来进行网络窃听。 并为每个新的代理连接创建一个单独的线程。 具体代理流程为: (1) 调用CCEServer的TCEServerLocals*CCEServer::InitializeLocal()接口创建单独的TCEServerLocals结构体,并初始化该结构体中的相关对象。 : CDBConnectionm_DBConnection; CBrokerVolumeDBm_dbBV; CBrokerVolumem_BV; 未列出的其他交易对象; (2)收到完整的交易信息后,分析其交易类型,然后转入对应的交易类进行处理。 对于Broker-Volume交易,调用 CBrokerVolume 类的函数socket voidDoTxn(PBrokerVolumeTxnInputpTxnInput,PBrokerVolumeTxnOutputpTxnOutput)用于执行交易; (3)在CBrokerVolume类的DoTxn函数socket中,会调用其CBrokerVolumeDB对象成员来详细执行每个交易帧; (4)CBrokerVolumeDB类有CDBConnection对象成员,可以使用它来执行数据库连接、提交事务或回滚事务等操作。具体执行SQL语句、分配语句句柄和段句柄的操作仍然实现由 CBrokerVolumeDB 类。 至于其他事务的代理以及MEEServer的运行流程,与上面介绍的内容基本类似,这里不再赘述。 总结 通过本文的介绍,希望读者能够了解TPC-E测试程序的系统架构和实现原理。 当然tp网站程序,由于作者水平有限,TPC-E官方文档中的一些中文术语可能翻译得不够正确,也可能无法正确理解。 还不够彻底。 如有不足之处,敬请谅解。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 tp网站程序-TPCE测试程序的设计与实现分析.doc 13页 https://www.wkzy.net/game/200542.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务