
| 出版日期:1999-06-17 总期号:832 本年期号:42 |
|
测试 ea server3.0商业事务性能
屹松 ea server 3.0测试性能要点 本文将描述powerbuilder对象在sybase enterprise application server(easerver)中运行的性能特性。本文中所列举的测试展示了通过web访问的单纯电子商务应用的可伸缩性。在这些测试中,核心商业逻辑是powerbuilder组件,后端服务器是sybase adaptive server enterprise数据库。 easerver 3.0的性能测试要点: ·所有测试都是在sybase公司的常规100mbit/sec商业网络上进行的。 ·在一台四路dell poweredge 6300上,easerver 3.0可以在一天内处理2.19亿个组件方法调用。 ·在easerver 3.0中对powerbuilder组件进行的测试实现了高达6840tpm的吞吐量。 ·本文中描述的电子商务应用需要调用多个组件才能完成一个事务并更新数据库。 ·对于此电子商务应用,easerver 3.0每天可以处理990万个商业事务。 easerver 3.0是一个基于组件的事务处理服务器,用于web与非web客户机的多层应用的提交。它在工业标准平台上借助工业标准组件技术为分布式应用与所有主流dbms提供了高速率的连接。 将用于服务器端html模板脚本处理的powerdynamo的动态网页服务功能与用于提交基于组件的分布式应用中间层逻辑的jaguar框架相结合,可以使easerver 3.0为web的分布式计算提供一个强大的中间层应用服务器。 大型的商业应用需要的不仅仅是html页面生成与脚本处理能力。在真正的商业应用中,业务逻辑一般是以组件的形式存在的。jaguar简化了需同时为数以千计的客户提供服务的internet应用的建立与管理工作,其组件运行于最终用户应用与远程数据库之间的中间层服务器上。jaguar为客户处理、安全性能、线程控制、第三层数据库连接和事务流提供了高效的管理,但不要求组件开发者具有专门的知识。 此技术的可伸缩性和平台无关性允许你在廉价的单处理器系统上开发应用,然后将其提交到企业级的多处理器服务器中。 测试环境 easerver 3.0/powerbuilder 7.0 nt测试是在一台配有四个400mhz pentium xeon cpu和1gb内存的dell poweredge 6300上进行的。在这些测试中,硬盘的容量无关紧要。后端数据库使用的是运行在dell服务器上的adaptive server enterprise 11.9.2。请参看图1及表1。
图1:分布式应用测试环境
多用户测试是通过一系列windows nt工作站运行多线程c++应用实现的。客户工作站通过一个100mbit/sec网络与测试服务器相连。客户机与两台服务器不是处在一个独立的网络中,而是通过sybase的常规商业网络相连接。在低负载情况下,客户应用以单线程形式运行(因为客户系统容易产生瓶颈)。在高负载情况下,由多个处理器来运行多个线程。c++客户用iiop与easerver进行通信。 吞吐量测试 powerbuilder nvo(nonvisual object,非可视化对象)组件是用powerbuilder 7.0制作,用easerver 3.0提交的。powerbuilder nvo拥有以下属性设置: ·自动划分/释放 ·同时性 ·实例缓冲(instance pooling) 由于组件的自动划分/释放设置处于开启状态,每一个方法调用结束后释放事件就会被自动触发。当组件指示工作已完成时,jaguar就会触发释放事件以让组件进行状态清理。这简化了大规模应用的组件开发工作。 同时性属性指示多个调用是否能被同时处理。除非任何时刻都只有一个组件实例,否则这个属性一般被设置为真。由于powerbuilder没有实例数目的限制,它的可伸缩性是很大的。 实例缓冲使jaguar客户能够重用组件实例。由于不再有重复创建组件实例而带来的资源耗费,实例缓冲提高了jaguar服务器的整体性能。 这个应用使用了easerver数据库连接缓冲,并用powerbuilder syj(原来的open client-library)数据库驱动,通过easerver pb nvo组件访问adaptive server enterprise(ase)。 商业事务组件基准测试 此应用中的商业事务等价于消费者通过电子商务web站点进行采购时需进行的工作。用户必须在产品目录中进行多项选择。应用必须对价格进行一些计算,然后处理一份订单。 这项基准测试代表了现实世界中工作负载的最小公分母,即web上的一次电子商务采购行为的处理过程。下面描述的每一个组件都代表了一个对中间层应用服务器的典型使用。商业事务由三个组件方法的调用组成,它们分别对应: 1.项目选择——数据库选择; 2.ping——不涉及数据库访问的简单方法; 3.项目更新——包含一个提交的对一个单独列的数据库更新。 方法是按以下顺序调用的:ping,ping,选择,ping,选择,ping,更新。这七个方法调用被看作是一个商业事务。ping和选择方法位于一个powerbuilder nvo组件中,而更新方法则位于另一个组件中。 非事务性组件性能测试 共进行了两个不同种类的基准测试。在第一个测试中,所有组件都被声明为非事务性,如图2。提交数据库事务由执行更新的存储过程完成。 事务性组件性能 第二个测试将含有项目更新方法的组件声明为事务性,如图3。在这种情况下,进行更新的存储过程并不提交数据库事务。easerver通过一个事务性组件完成提交。测试在客户机上连续运行,在方法调用之间没有思考或键盘输入的时间。这样的测试负载比正常使用情况下的负载要重很多。因为在正常使用情况下,用户必须手工键入数据,并花时间阅读屏幕上的文字。
图2:powerbuilder nvo电子商务非事务性性能 sybase的测试发现,用客户机连续执行一个powerbuilder组件产生的反应时间与5个至15个每20秒钟使用一次组件的客户相似。比如60个使用电子商务组件的客户得到的反应时间为1秒。同样的测试也在每次组件调用之间加入20秒的思考时间的情况下进行。加入了思考时间的测试发现,600个普通客户与60个连续客户等价,即比例为10比1。
图3:powerbuilder nvo电子商务事务性性能 为了表明实际使用情况,图3的测试结果对比的是等价的客户负载,即一个连续进行组件调用的客户相当于10个每隔20秒进行一次组件调用的客户。 结论 enterprise application server是建立在sybase成熟的服务器技术的坚实基础之上的。easerver中的jaguar组件事务服务器提供了建立和提交高性能分布式应用所需的功能。 影响easerver性能的关键因素 ·对客户活动和整个组件生命周期的透明管理 ·允许重用远程数据库连接的连接缓冲 ·简化了应用事务设计与实施的事务管理 ·简化了共享数据与资源使用的透明的线程安全性功能 ·支持结果集,使客户应用中的表格数据能够被高效提取 本文中所列举的测试展示了通过web访问的单纯电子商务应用的可伸缩性。在这些测试中,核心的商业逻辑是powerbuilder组件,后端服务器是sybase adaptive server enterprise数据库。根据这些测试结果,powerbuilder 4gl的开发加easerver的提交的组合,很适用于具有多样化计算环境要求的基于标准的分布式应用。 |
||||||||||||||||||||||