cowboy01 发表于 2013-11-7 16:22:29

金融领域系统性能缺陷及优化-1

金融领域系统性能缺陷及优化
发表于2013-10-17 13:37| 372次阅读| 来源中国软件评测中心| 29 条评论| 作者郭宇
性能优化服务器客户端
摘要:大型网络应用系统,尤其是金融行业软件系统的网络环境、数据库环境、应用服务器环境、系统平台和技术架构等的复杂性和多样性,难以预知的用户负载和越来越复杂的应用程序使系统性能出现问题的概率大为增加,一旦软件系统出现性能问题,将给广大用户和管理者带来难以估量的损失。
一、金融领域系统性能故障影响严重

近十年来,网络技术发展呈现出日新月异的景象,人们的生活方式特别是在网上消费方面也因为网络技术飞速发展而发生了巨大的变化,越来越多的消费者享受到网上服务带来的快捷、安全的消费体验,而这些都离不开金融领域系统的支持。网上购物、消费、缴费、转账、理财等金融业务高速发展同时,使用人数的不断攀升,对金融领域系统的性能要求也随之不断提高,对大用户量并行访问使用的需求也越来越明显。

大型网络应用系统,尤其是金融行业软件系统的网络环境、数据库环境、应用服务器环境、系统平台和技术架构等的复杂性和多样性,难以预知的用户负载和越来越复杂的应用程序使系统性能出现问题的概率大为增加,一旦软件系统出现性能问题,将给广大用户和管理者带来难以估量的损失。

以下列举2个金融领域案例来说明一下软件系统性能影响。

案例1:2011年6月,某网上银行系统刚完成系统升级上线不久就接到用户投诉,系统登录失败的异常信息。相关厂商技术人员、性能测试专家等快速搭建性能测试环境并对整个网上银行系统进行性能测试,对登录异常进行问题重现,资深开发人员对代码进行逐一排查。通过性能测试发现问题的主要根源出在第三方公司的密码控件上面。该密码控件在代码中使用了一个全局变量,导致在系统并发时会出现异常,系统其他用户在访问时也无法正常解析密码从而登录失败。虽然问题出在第三方公司的密码控件上面,但给厂商、银行和客户带来了很大的负面影响;

案例2:2013年8月,上证指数在无任何消息的情况下出现股指瞬间涨幅超过5%的情况,盘中股指逼近2200点,随后股指迅速下跌,最终以下跌终场。但由于事发突然,使众多投资者遭受重大损失,证监会也组成调查组对该事件进行调查,通过调查很快找到了肇事元凶----为某银行证券公司套利策略系统出现了问题,该系统包含订单生成系统和订单执行系统两个部分。核查中发现,订单执行系统针对高频交易在市价委托时,对可用资金额度未能进行有效校验控制,而订单生成系统存在的缺陷,会导致特定情况下生成预期外的订单。由于订单生成系统存在的缺陷,导致在短短2秒内,瞬间重复生成2万多笔预期外的市价委托订单;由于订单执行系统存在的缺陷,上述预期外的巨量市价委托订单被直接发送至交易所。由于该软件系统缺陷给大批投资者带来了巨大损失,系统故障影响发人深省。

二、金融领域系统性能缺陷分析

金融领域系统性能缺陷大体可以分为三个方面,第一个方面是应用在客户端性能缺陷;第二个方面是应用在网络上性能缺陷;第三个方面是应用在服务器端性能缺陷。

1. 应用在客户端的性能缺陷分析

在金融领域系统软件中涉及客户端的性能缺陷主要体现在三个方面:第一个是软件系统页面组件问题,当前随着应用技术的快速发展,页面展现等前台页面显示技术也实现了质的飞越,如Ajax技术、Flash技术、大图片等,使用户操作界面显示形式和样式都有了非常大的提高,但这些技术的实现对客户端前端展现也提出了更高的要求,如客户端配置、网络带宽不高的情况下,对用户操作体验也会带来影响。

如下图2.1.1页面组件加载时间分解图是通过测试工具捕捉到的某系统首页页面加载组件响应时间图。



图2.1.1页面组件加载时间分解图

这里可以看出组件大小与页面打开响应时间是成一定比例关系的,也就是说如果系统页面加载的组件越大,页面完全打开的时间就越长,这也能解释为什么很多页面中视频文件、Flash文件等媒体文件加载时间长的原因。

第二个方面是客户端使用组件或者控件存在缺陷,当前应用在前端页面的网络系统为了实现在公网上访问的用户数据和交易数据的安全性,部分系统采用了第三方的组件或者控件保证其安全性,这种做法在一定程度上降低了其实现的难度和成本,但由于开源组件或者控件其非盈利性的特点,其自身在功能、性能等方面可能存在潜在缺陷,因此当系统使用这些组件或者控件时可能会受到这些潜在缺陷的影响,一旦出现故障势必给用户造成无法估量的经济损失。

第三个方面是交易执行指标不满足。交易响应时间是交易执行指标之一,从用户角度来看交易响应时间不满足使用需求也是在客户端性能缺陷一个重要体现,交易响应时间也是衡量系统性能的一个重要指标,如果交易响应时间过长、交易处理速度较慢也会影响用户操作体验,同时也是反馈出系统性能存在瓶颈的重要标志。

2. 应用在网络上性能缺陷分析

应用在网络上的性能缺陷主要体现在两个方面:一个是网络传输质量,如网络的带宽大小、网络丢包率等特性对软件系统性能影响,另一个是网络带宽需求对软件系统性能的影响。

一方面网络传输质量。在当前网络应用大为普及的今天,网络传输品质对于大型系统的并行访问也是至关重要的,很多基于互联网应用的系统都需要有较高要求的网络硬件提供支撑,因此,一个稳定、可靠网络环境对于大型软件系统尤其是金融领域的软件系统的重要性就不言而喻了。当前涉及网络方面的质量特性主要集中在网络带宽、网络延时、网络丢包率、路由解析效率等方面。这些网络质量特性容易被用户忽视,由于地域和区域资源垄断背景下,不排除运营商间竞争导致部分网络节点出现应用方面的瓶颈。

另一方面是系统在网络方面带宽不满足需求。不少全国中心的软件系统运行中需要用户从公网或者专用网络访问服务器,在这个过程中,网络因素尤其是网络带宽大小在很大程度上成为系统性能表现的一个重要因素,如果网络实际带宽不能满足多用户的并行访问要求时,就会出现用户操作响应缓慢的现象。从中国软件评测中心实施过软件系统项目中发现,不少系统在架构设计之初均未充分考虑全国中心系统在多级网络方面不同的网络带宽需求,一旦这些系统上线后,有限的网络带宽将成为系统性能表现差的主要原因之一。

例如,有一个金融软件系统,运行在100Mbps网络带宽下,但是由于系统未明确对网络带宽的需求,通过测试发现该系统实际网络需求远高于目前运行网络带宽,造成系统响应时间很长,如下表2.2.1为该系统测试的网络带宽利用率表。



表2.2.1网络带宽利用率表

从该表可以看出在50用户并发操作时网络带宽使用达到10MB/S,已经接近12MB/S(100Mbps网络带宽上限),在100用户并发操作时更是达到了20MB/S,但该系统全国中心到省级应用的实际网络带宽只有100Mbps,因此,如果该系统不做相关优化或者不提升网络带宽的情况下是很难支持100用户并发操作的。

3. 应用在服务器端性能缺陷分析

应用在服务器端的性能缺陷分两个方面,一个是硬件方面性能缺陷,另一个是软件方面缺陷。

a)服务器端硬件方面缺陷

在硬件方面主要是服务器端的操作系统资源使用方面的缺陷,如服务器的CPU、内存、硬盘、活动进程等方面资源使用上的缺陷。服务器方面资源使用方面的问题是一个比较隐性,不少软件系统的性能问题跟后台服务器的资源使用有很大的关系,因为用户一般只会关注前端应用,但后台服务器的资源使用不合理也会对软件系统性能造成影响。以下主要针对服务器的CPU、内存和硬盘资源使用缺陷进行分析:

i. CPU占用率高。

应用服务器、数据库服务器的CPU资源在多用户并发访问时会出现资源紧张的情况,一般认为服务器的CPU资源占用率在85%以上时,会认为服务器的CPU资源紧张。当服务器的CPU已经十分繁忙时,用户再提交更多的处理请求服务器也不能对其进行快速响应,大量请求无法及时处理后会出现处理器请求队列现象,此时用户前端的使用就会感觉到操作处理响应时间很长。

ii. 内存利用率高。

应用服务器、数据库服务器的内存利用率在多用户并发访问时会出现紧张的情况,一般认为服务器的内存利用率在80%以上、内存页交换律达到80页/秒的时候会认为服务器内存资源紧张,内存资源出现紧张或者不足时,系统将会使用大量的交换内存空间(实际上是硬盘空间)用于数据临时存储和处理,但此时使用交换内存将会对读取数据的效率产生影响,因为交换内存的数据处理速度一般仅为实际物理内存处理速度的几分之一或者十分之一,此时,受到影响的实际上是服务器硬盘,它也会拖累服务器的整体处理速度和效率。

iii. 硬盘利用率高。

不少应用或者数据库服务器在多用户并发访问下会出现硬盘利用率过高的情况,如在用户并行访问期间,服务器的某些硬盘始终处于一个繁忙的状态下,如果涉及单块硬盘时,运行于该块硬盘上的数据处理就会受到影响,如果涉及了大量的硬盘读写操作而导致硬盘繁忙率接近甚至持续达到100%时,涉及的业务处理速度将肯定受到影响,业务处理时间将会延长,这也是造成软件系统运行慢的原因之一。

LorrieL 发表于 2013-11-28 10:55:27

支持一下~
页: [1]
查看完整版本: 金融领域系统性能缺陷及优化-1