性能保障方案.docx

上传人:re****.1 文档编号:558598834 上传时间:2024-02-03 格式:DOCX 页数:66 大小:854.86KB
返回 下载 相关 举报
性能保障方案.docx_第1页
第1页 / 共66页
性能保障方案.docx_第2页
第2页 / 共66页
性能保障方案.docx_第3页
第3页 / 共66页
性能保障方案.docx_第4页
第4页 / 共66页
性能保障方案.docx_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《性能保障方案.docx》由会员分享,可在线阅读,更多相关《性能保障方案.docx(66页珍藏版)》请在金锄头文库上搜索。

1、1 性能保障方案1.1 从构架设计解决系统性能问题一个好的构架设计是保证系统今后可靠、稳定、高效运行的基础。从构架设计上考虑系统性能问题,其目标是保证如下指标:l 并发用户数l 吞吐量l 可靠性l 性能即:让系统更快更好地为更多的用户提供服务,并且保证服务过程不会中断。为了达到以上指标,在设计中可以采用如下方案:1.1.1 构架设计性能保障原则(1)面向性能的业务流程分析明确性能问题在整个软件生产与运行过程中的重要意义,在考虑架构分析与设计的时候,出发点与指导原则是帮助用户使用某种技术手段来高效地完成业务流程,其本质是“高效的业务流程”,而不是一个计算机系统或计算机应用。在这一原则之下,我们的

2、应用开发是围绕着开发高效“业务流程”展开的,Java或其他技术只是我们的一种技术手段而已。避免由于具体的技术实现方案对业务流程分析中的性能指标的束缚。(2)“化整为零”的领域模型设计领域模型分析与设计过程中,抽取,抽象出稳定的领域模型,并且剥离出严重影响系统性能的长事物处理与批量事物处理,针对长事务处理采用“化整为零”的处理模式,将集中式处理过程中的具体环节分散到日常的业务处理功能中,对于批量业务处理采用多线程并行独立处理。同时这种“化整为零”领域模型设计在面对业务流程与模型的自然变化面前,可以通过最少,最小的程序变动,降低对应用性能的影响。(3)面向性能的架构关键技术选型在架构设计的时候要时

3、刻围绕着系统的QoS需求,并将这些需求转化到Service的设计上,真正做到“面向性能的架构关键技术选型”,如下内容概述出在架构设计国政部分关键技术选择是如何围绕“性能”进行考虑的。RIA(Rich Internet Application)客户端架构在保证良好的用户体验的同时,处理UI界面的展现与渲染过程中充分利用客户机的运算与处理能力。数据交互格式定义精简的客户端与应用服务器端数据交互格式,在不丢失数据语义的同时,尽量降低在网络中传输的数据内容。自动事物管理利用面向切面的技术进行事物管理的切入,从而实现自动化的事物处理,避免编程式事物导致的事物与数据库连接问题 并行处理并行处理是通过利用J

4、2EE层执行模式的多线程和多CPU特点来提高性能。与使用一个线程或CPU处理任务相比,以并行方式处理多个子任务可以使操作系统在多个线程或处理器中进行分配这些子任务。 异步处理异步处理只处理那些非常重要的任务部分,然后将控制立即返回给调用者,其他任务部分将在稍后执行。异步处理是通过缩短那些在将控制返回给用户之前必须处理的时间来提高性能的。虽然都做同样多的事情,但是用户不必等到整个过程完成就可以继续发出请求了 缓存机制缓存中存放着频繁访问的数据,在应用的整个生命周期中,这些数据存放在持久性存储器或存放在内存中。在实际环境中,典型的现象是在分布式系统中每个JVM中有一个缓存的实例或者在多个JVM中有

5、一个缓存的实例。缓存数据是通过避免访问持久性存储器来提高性能的,否则会导致过多的磁盘访问和过于频繁网络数据传输。在架构设计过程中,针对待实现系统中的实际业务特色,剖析出客户端与中间件中频繁使用的但又很少变化的数据。通过一些技术手段,将这些数据在合适的时机(系统启动,用户登录,第一次使用等)以一定的数据结构存放客户端或者中间件内存中。避免每一次使用都进行发送远程调用请求或者数据库访问,提高系统的运算与处理速度。 资源池,对象池在应用系统运行过程中,特别对于一个高并发的应用系统资源的频繁地创建都一个高成本的动作,在架构设计过程中对数据库连接,业务逻辑组件等高并发,高成本的对象与资源采用池化技术,在

6、应用系统启动过程中以对象池,资源池的方式,初始化到池中,降低频繁的创建与销毁,同时也降低内存碎片的产生(4)持续性的性能管理持续性的性能管理主要是指,在系统构建过程中持续性地性能测试。持续性能管理的前提条件是有一套完整定义的单元测试用例,健壮的测试框,以及明确的,量化的性能需求。除了必不可少的单元测试,集成测试,压力测试以外,持续性的性能管理更突出了自动化测试的重要意义,自动化方式可以创建重复的测试过程并迅速报告应用代码的质量。只有自动化方式才能保证正确地遵循这些测试过程,并且保证准确和一致地测试应用组件。1.1.2 分层的设计方法分层应用是将组件等分隔到不同的层中,每一层中的组件保持内聚性,

7、并且大致在同一抽象级别。每一层都应与它下面的各层保持松散耦合,避免使较低级别依赖于较高级别。通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。分布式服务层依赖较低层,但是较低层的细节不会显示在包含应用程序和业务逻辑层的较高层中。应用程序开发人员在较高抽象级别工作时不必考虑诸如 TCP/IP 数据包和网络字节排序之类的细节。它还可以在替换较低层时不对较高层造成任何影响。采用从整体架构层次来看,系统可分为表示层、业务逻辑层、数据持久层。见下图:图 91应用软件层次架构图1)表示逻辑(客户层)为第一层:它的主要功能是实现用户交互和数据表示,为以后的处理收集数据,向第二层

8、的业务逻辑请求调用核心服务处理,并显示处理结果。2)业务逻辑(服务器组件)为中间层:这些组件由中间件管理,实现核心业务逻辑服务并将这些服务按名字广播,管理并接受客户的服务请求,向资源管理器提交数据操作,并将处理结果返回给请求者即客户或其他服务器。3)数据(资源管理器)构成模型的第三层。比如关系数据库,负责管理应用系统的数据资源,完成数据操作。服务器组件在完成服务的过程中通过资源管理器存取它管理的数据,或者说请求资源管理器的数据服务。在三层客户机/服务器模式上架构的应用系统不但具备了大型机系统稳定、安全和处理能力高等特性,同时拥有开放式系统成本低、可扩展性强、开发周期短等优点。对于其中最关键的业

9、务逻辑层,又可以分为控制框架层、业务组件层、数据访问层和相关资源层。控制框架层管理业务组件的装配和调用,是业务逻辑层的核心引擎。业务组件层集中了各种实现业务逻辑的组件;数据访问层封装对数据存储的各类访问操作;相关资源层包括了各种相关应用支撑功能,如:缓存、对象池、线程池、消息、日志等。控制框架层与相关资源层构成系统的分功能属性部件,业务组件层和数据访问层构成系统的功能属性部件。通过系统分层,改变了传统信息系统的大一统结构,区别系统的功能属性与非功能属性,将不同的功能交给相应的功能组件来完成。在单笔业务或者小用户量的情况下,分层的系统架构并不具备优势,其关键优势在于对并发的大数据量业务的响应和处

10、理方面,通过在各层中合理的分布系统压力,改变了传统信息系统压力集中的缺点。同时,采用分层技术架构,可以根据系统性能的具体需求,对不同的层次进行有针对性的优化处理。1.1.3 业务同步处理与异步处理相结合的系统体系架构传统的业务处理模式通常采用直接的请求/应答方式进行同步处理,在业务高峰发生的时候,由于对资源的集中使用造成系统的响应速度急剧下降。通过在系统架构中加入异步业务处理模式的支持,将一些业务通过异步方式放入工作队列中,在系统空闲的时候再从队列中获取工作任务进行处理,减少对资源的集中占用,保证在业务高峰期的系统响应性能。1.1.4 缓存、池化技术的使用在实际业务处理过程中,数据库访问、网络

11、传输以及新建对象都是成本较高的资源开销,对于性能要求很高的业务系统来说,采用合理的技术减少高开销的资源访问是必须考虑的内容。采用缓存、池化技术,将频繁访问的资源放在I/O性能较高的载体上,减少集中的和缓慢的I/O访问,从而达到提高系统性能的目的。图 92缓存、池化技术1.1.5 分布式业务处理模式多层体系结构将业务逻辑与数据存储和显示分开,使得系统层次更加分明,系统鲁棒性、可扩充性、安全性得到大大提高,同时它也使得分布式计算得到广泛应用,使得系统的性能由于采用分布式计算而大大提高。采用分布式计算有着多方面的技术优势,包括:l 逻辑封装性这是分布式模式中最具诱惑力的特征,这种模式将以往C/S结构

12、中全部由客户机完成的事务逻辑中的一部分从客户端分开。当使用户需要动态改变一个应用软件的商业逻辑规则时,只要改变一个应用服务器的程序即可,而不需要更改客户端用户界面,这样就无需中断用户,为最终用户重新发放新的界面软件或亲自上门为其安装调试并重新培训用户,提高了工作效率。这种多级模式对于需经常、快速改变应用程序的行业很有帮助。l 性能性能的提高是三级模式最终被用户采用的主要原因。将复杂的应用和商业逻辑分离出来由专门的一台或多台应用服务器来处理,既可以提高应用的执行速度,也可以减少网络调用的通讯量。不过这种性能提高是有一定代价的。这就是开发时要将应用逻辑分割为客户端逻辑和服务器端逻辑,这就增加了设计

13、的复杂性。l 安全性管理在分布式计算模式中,由于所有的商业逻辑都驻留在服务器端,信息管理部门就可以十分方便地监控服务器的运行情况,很容易地控制访问服务器以及与服务器应用打交道人员的数量。这可以大大简化管理员对系统的管理,减轻系统维护的工作量,并确保系统的可靠运行。针对金财工程的特点,在构架系统时,应充分考虑分布式计算的特点,在数据大集中的模式,通过应用服务器及其群集技术,将计算逻辑合理分布以保证系统的性能。1.2 从应用软件解决系统性能问题1.2.1 应用软件的设计应基于构件,尽量简单化应用系统的设计应利用基于构件的开发理念,增加程序代码的可重用性。此外,程序应使用简单的逻辑和算法来获取结果,

14、避免复杂以及深层次的对象调用,提高运行效率,以获得快速的相应速度。1.2.2 应用软件应该以分阶段的方式来构件化已存在的遗留系统历史遗留系统的重构是高风险和大工作量的任务,同时与遗留系统的业务和数据衔接是一个对应用软件性能影响重大的环节。因此,最好以分阶段的方式逐步用新的构件替换遗留系统的各个组成部分,以降低风险,减少工作量,逐步提高系统的相应速度。1.2.3 应用软件编写的质量直接关系到系统的性能。编程的质量有经验的积累也有个人的技巧,在一个用软件整个开发过程的指导思想是:“按照规范来进行开发,而不是按照个人习惯,应用服务器等其他因素来进行开发”。与此相对应我公司专门针对开发工具以及使用的数

15、据库的特点制定了相关规范,见下表:1Pascal 编码规范PR_C_2000_0012.Java编码规范PR_C_2001_0023.PowerBuilder编码规范PR_C_1999_0034.Visual C+编码规范PR_C_1999_0045.Visual Basic编码规范PR_C_1999_0056.数据库服务器段软件开发规范PR_C_2000_0067.Delphi编码规范PR_C_2001_0078C+&C编码规范PR_C_2001_008根据我们的经验,在多层体系结构的业务应用系统(如电信、社保系统)的开发中,关键是数据库的操作编程以及涉及到中间件的编程将对系统性能影响很大。因此本节将从数据SQL和中间两方面简述应用软件编程提高性能几个注意点。1.2.4 应用软件性能监控,保障组件设计除了应用软件本身的缺陷外,运行过程中业务模型的自然变化或人为更改,系统环境的改变,以及应用软件执行过程中内在的变化特性,使得应用性能问题在生产环境仍然普遍发生。根据应用软件的业务特点,结合技术构架的实现方案,在应用软件中实施与部署性能监控,分析组件,发现应用软件中存在的性能问题,借助于性能监控,分析组件可以快速定位与解决性能问题,但并不能避免应用性能问题不发生。1.2.5 应用软件数据库SQL的编程注意事项l 确定一个SQL语句的书写规范,以提高SQL语句在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号