随着5G、大数据、人工智能、生物识别等信息技术的高速发展,传统商业银行均加快了数字化和智慧化转型步伐。开放平台应用系统作为数据化银行的核心,其性能高低不仅关系着银行的声誉,也影响着转型的进程。本文针对银行开放平台应用系统的特点,介绍了常用性能监控工具及常见性能问题调优方法,并给出了具体的应用实例,希望对测试人员性能调优能有所帮助。
一、银行开放平台应用系统特点
开放平台应用系统泛指依托X86服务器、小型机、F5、存储等硬件设备和Linux、Unix、Windows等系统软件构建的应用系统,也泛指除IBM大型主机平台应用系统以外的所有应用系统。银行开放平台应用系统具有以下特点:一是应用系统数量多且涉及业务复杂,银行应用系统涉及客户营销、产品、渠道、运营、风控、经营管理和数据服务等业务领域;二是应用系统技术架构和软件多样化,系统中包含了PASS云平台、WebSphere、Tomcat、Oracle、Mysql、Redis、Gbase以及Kafka、Hbase、Hive等大数据平台生态圈的诸多软件,系统架构更是千差万别;三是核心系统和渠道类系统用户量或交易量大,对性能要求高;四是系统之间关联关联复杂,测试环境配置复杂且性能问题定位难度较大。二、常用性能测试指标及监控工具
1、常用性能指标 银行应用系统性能指标通常包含括但不限于并发用户数或TPS、响应时间、成功率、资源利用率。其中,交易量较大的系统建议重点关注TPS,交易量较小的系统建议重点关注并发用户数,响应时间取值为压力测试工具测试结果中90%用户响应时间,成功率要求为99.6%以上,应用服务器和数据库服务器CPU和内存使用率一般不超过80%。此外,可根据系统特点和测试目标酌情关注其它性能指标,如:监控类系统可关注TCP连接数、网卡流量等性能指标。常用性能指标监控工具列表1如下。 表1 常用性能指标监控工具三、常见性能问题及调优方法
性能调优是对系统软硬件各个方面的设置和关联进行调整和优化,使之发挥出最大的效能,从而高效支撑业务的开展。性能调优推荐按照“硬件-网络-系统配置参数-应用程序-系统架构”依次进行分析、调优。银行开放平台应用系统性能问题多集中在交易响应时间长、应用服务器或数据库服务器cpu利用率高、JVM内存溢出、SQL语句无相关索引或索引使用不当、日志级别设置不当、查询结果未分页、Oracle数据库未使用绑定变量、应用程序与数据库连接未使用连接池等,常见问题的具体调优方法如下。 1、CPU利用率高 CPU利用率高通常涉及应用服务器和数据库服务器,银行应用系统中应用服务器操作系统和数据库服务器以Linux和oracle为主流,本文仅以Linux和oracle为例进行说明。 Linux操作系统CPU利用率高:通过top命令查看CPU占用率高的进程,再根据进程PID查看CPU占用率高的线程ID(top -Hp 进程PID),将线程ID转换为16进制,生成javacore文件(Kill - 3 进程PID),利用16进制的线程ID在javacore文件中查看线程的详细执行信息,从而定位CPU利用率高的应用程序代码。Oracle数据库服务器CPU利用率高:通过top命令查看CPU占用率高的进程PID,通过进程PID定位出sql语句的sql_id(select sql_id from v$session where paddr=(select addr from v$process where spid=’XXXX’)),通过sql_id查看具体sql(select sql_text from v$sql where sql_id=’XXXX’), 再通过dbms_xplan.display_awr()与sql_id(select plan_table_out from table(dbms_xplan.display_awr(‘XXXX’)))查看语句的执行计划,进而对sql语句进行优化。
2、JVM堆内存溢出
堆是JVM运行时内存中最大的区域,也是和程序开发密切相关区域,所有的对象实例(包括基本类型)、数组都存放在这个区域。JVM堆内存使用量持续增长,当增长到最大堆后,将无法分配新内存,系统出现内存溢出,WebSphere堆内存溢出发生后,系统会自动生成堆内存转储headdump文件,同时SystemOut.log中会出现关键字”java.lang.OutOfMemoryError”,native_stderr.log中会出现关键字”java/lang/OutOfMemoryError”。
内存溢出可利用HeapAnalyzer 定位占用内存大的对象(如图1所示),同时使用GC日志分析工具分析详细垃圾回收日志 (native_stderr.log),可以分析出现内存溢出的过程,确认触发内存溢出的直接原因,评估垃圾回收工作的性能,找出合适的GC策略和调优参数。
图1 HeadDump分析
3、Websphere会话覆盖参数
应用服务器为Websphere的应用系统,如采用Session方式控制用户访问,在当大量用户瞬间并发访问时,由于WebSphere会话线程不释放或释放缓慢,可能会出现请求无响应的情况。此时,可以考虑配置Websphere会话管理参数,具体登录到was控制台,进入会话管理界面(如图2所示),选中该界面中的覆盖会话管理-启动cookie,内存中最大会话量填写3000,然后点击应用。
图2 WAS控制台会话管理界面
……
点击阅读原文查看全文
CONTINUE 推荐阅读点击阅读☞用我这些年的经历告诉你无力吐槽的自动化现状……
点击阅读☞项目管理经验漫谈:作为测试项目负责人,这些年我的所见所得
点击阅读☞银行系统接口交易功能测试要点
点击阅读☞有梦谁都了不起,记一次难忘的银行面试经历……
点击阅读☞如何做好软件系统自动化测试?
戳 爱我请给我“在看”!