随着数字中国建设的不断推进,我国的电子政务建设取得了巨大进展。在夯实信息化基础、取得阶段性成果背景下,电子政务建设正由“单项应用”向“共享协同”的阶段进阶。对于福建省龙岩市数字龙岩办公室来说,随着内部业务规模逐步扩大、业务种类逐步增多,为保障业务的稳定,以及用户的使用感知,其应用系统的性能就显得尤为重要。


龙岩市数办通过OneAPM Ai 服务端性能监控,Bi 浏览器端性能监控,CT 业务可用性监测平台,对包括“协同办公系统”,“行政审批系统”,“e龙岩”平台,“市政府网站统一技术平台”在内的电子政务系统,进行实时性能监测,从用户体验入手,在代码源头查找影响应用性能的原因,不断优化系统设计和实现,提升用户满意度。


以下即为龙岩市数字龙岩建设办公室的应用实践。



案例 | OneAPM助力龙岩市政电子政务,强化平台源动力 客户案例 第1张



龙岩市全流程网上办事统一平台应用性能分析与性能优化

转自《福建电脑》,2018 第四期


摘要:本文从应用管理者的角度,以龙岩市全流程网上办事统一平台应用为例,运用性能监控系统,通过周期监测,从客户端的用户体验到服务器端的应用监控,从源头上找出了影响应用性能的原因,帮助应用开发者优化系统架构、数据库、代码等设计,使用者提升用户体验,取得了较好的成效。

关键词应用性能监控 系统架构 数据库优化 代码优化 用户体验


  1 应用性能监控的必要性

    一个好的应用系统,应从三个方面评价,其一满足功能要求,即能解决实际工作的需要,系统的功能、流程符合实际需求;其二满足安全要求,即系统应符合信息系统安全等级保护的要求;其三满足性能要求,即系统能稳定运行,让用户有好的体验。作为应用系统的开发者,往往对应用的功能和安全考虑的多些,作为应用管理者和运维部门,则更关心用什么手段来监测应用的性能,提升用户体验,推进应用开展。

    随着电子政务应用整合的实施,各类应用关联度越来越高,用户越来越多,数据量的爆发式增长,应用环境的多样化,如何进行量化和精准的问题定位是摆在应用管理者和应用开发者面前迫切需要解决的问题。如果处理不好,就不能带给用户好的体验,严重影响工作生产效率。

    早期的IT监控手段有限,主要集中在物理类(主机、网络、存储、备份等设备)和逻辑类(数据库对象、中间件服务和关键应用进程)资源。监控的数据相对分离,缺少数据整合,没有形成端到端的总体业务监控框架。并且由于监控对象都是物理类,指标也都是状态类指标,如主机只监控CPU、内存、磁盘等,存储只监控IOcache、可用性等,数据库只监控可用性、表空间使用率、CPU、内存等,无法提供更深一层次的性能数据,无法获取端到端的业务整体运行情况,很难直观发现系统的瓶颈以及性能问题。

    性能问题的体现往往来自于系统用户的抱怨和投诉,系统管理者缺乏对于系统整体运行的监控框架,对于具体问题缺乏量化和精准的问题定位手段,问题往往被毫无依据的抛给系统开发商,由于缺乏有效的质量监督和管理手段,系统开发商的处理结果往往不尽如人意。

    为了解决以上的种种问题,应用性能监控的建设就显得尤为必要,应用性能监控从应用角度出发,直观的发现应用用户感受的诸多性能问题,从整体上对系统运行状态进行监控,并且可视化多种性能指标,直观评判系统运行质量,对于具体问题进行精准的量化和定位,

提高系统管理者对于系统运行状态的把控力,建立一个可视化的、可量化的,发现问题、解决问题、效果验证的良性循环。


  2 龙岩市全流程网上办事统一平台运行环境

    龙岩市全流程网上办事统一平台于201612月全面上线运行,是涵盖了龙岩市本级、所辖7个县(市、区)及134个乡(镇、街道)的跨部门、跨层级的应用系统,遵循龙岩市电子政务公共平台建设方案1,基于协同办公系统的通用流程平台(Mocha BPM)基础上,实现统一用户管理、统一单点登录、统一代办事项、统一消息服务、统一业务流程管理,采用B/S架构,目前使用单位500余家,用户3000余人。而协同办公平台使用单位多达1302家,用户25540人。

  2.1 用户端

    操作系统多为winxpwin7win10。

    浏览器种类较多,包含IE8IE9IE10IE11ChromeFirefox360等。

  2.2 承载网

    应用承载于福建省政务信息网,市至各县(市、区)主干为两个100M MSTP专线,各县(市、区)至所辖乡(镇、街道)为10M光纤接入。市行政服务中心至市政务数据中心采用千兆光纤接入,各县(市、区)行政服务中心和所辖乡(镇、街道)综合服务窗口按照《福建省政务信息网横向接入技术规范》接入到各县(市、区)政务数据中心。

  2.3 服务器端

    平台运用Java开发语言、zookeeper分布式架构服务和memchached缓存组件,操作系统采用windows server,数据库技术为Oracle数据库和mysql数据库。

    平台各类服务部署如下图:

案例 | OneAPM助力龙岩市政电子政务,强化平台源动力 客户案例 第2张


  3 应用性能监控系统部署与分析

  3.1 系统部署

    采用国产某知名应用性能监控系统,根据龙岩市全流程网上办事统一平台系统结构,将探针部署在八个服务器中,同时对外部调用的服务如通用流程、统一单点登录和统一认证服务器也进行部署,部署情况如下表:

案例 | OneAPM助力龙岩市政电子政务,强化平台源动力 客户案例 第3张  

  3.2 监控目的

    基于BI的IP抓取,分析客户端的访问情况,提升业务系统的用户体验;基于AI的应用监控,对业务系统运行情况进行监控和分析,提升运维水平;定位系统性能瓶颈,提供优化建议。

  3.3 性能分析

    201821日至228日作为一个检测周期,对龙岩市全流程网上办事统一平台从基于用户端对端体验、Web事务、SQL语句、外部服务、后台错误和Java虚拟机内存使用等方面进行了数据采集分析,在采样期间,性能指标如下:

    应用系统平均响应时间为746.49ms(平均响应时间 = N个应用的总响应时间 / 总调用次数),系统整体处于健康状态;但指定时间段内,系统响应时间超过0.5秒,存在优化空间;

    整体的Apdex(满意度指数)平均值在0.76;(系统越接近于1性能状态越良好),从整体来看,存在部分慢请求影响了客户体验;

最大吞吐量57.26CPM(每分钟调用次数),平均吞吐量30.26CPM,系统与服务器之间的负载处于正常状态。根据平均吞吐量看,业务量不大,系统承压较小。

    系统中存在相对运行慢的Web事务,部分请求的平均响应时间超过了2秒,平均值达到了11.86秒,导致用户操作某些业务带来不佳的体验。

  

  4 主要性能瓶颈及优化措施

  4.1 客户端浏览器版本低

    存在问题:当客户使用IE8 或者IE9浏览器访问系统时,系统页面加载速度远远慢与其他高版本浏览器。根据22715:0017:30数据分析,对单点登录服务器CAS请求共发生1254次慢请求,其中发生在IE8IE9浏览器上的次数为1208次,IE8 IE9比例达到96%

优化措施:更换winxp操作系统,升级浏览器版本。

  4.2 三类Web事务执行时间过长,不满意率较高

    存在问题:Uri/approval/approvalUri/approval/diskUri/approval服务是网上办事平台最主要的服务,普遍存在Web事务较多慢响应,对平台性能影响较大。通过抽茧剥丝,层层溯源,原因分别为数据库操作过程耗时、Web服务器瞬时压力较大、SQL语句执行耗时、数据库SQL的查询结构设计和语句不合理等。

    优化措施:1.网上办事平台集成在协同办公平台统一门户的Portlet页面中内容和首页展示菜单由目前同步加载升级为异步加载,将数据获取转化为后台执行,Ajax机制添加接口网络数据交互异常处理机制,诊断不可用或超时时自动释放资源,避免影响首页的渲染。2.SQL查询统计总量from语句将目前低效率的“count(*)”替换为高效率聚索引函数“count(1) ”,提高查询统计的效率。SQL条件匹配查询where中将目前“like”关键字替换为Oracle高效率函数“instr(strSource,strTarget) ”,提高条件查询的效率。3.DBA收集网上办事平台数据库的AWR报告,通过收集AWR报告并分析SQL,定位执行效率较低的SQL和磁盘占用较高的SQL,减少磁盘访问、交互次数。4.针对耗时过长的SQL语句,进行优化改造,包括SQL合并、建立索引、创建视图、替换高效率Oracle内置函数等,提高SQL的执行效率;缩短复杂SQL执行时间,减少全表扫描。5.增加Web服务器,减轻峰值压力;存储添加固态硬盘,提升数据库系统的磁盘性能。

  4.3 外部服务调用时间比较缓慢

    存在问题:网上办事平台每做一个操作,都需要调用CAS认证,导致Web交互速度变慢。由于BPM工作流接口反应速度慢,加上审批内部流程需要通过BPM返回的数据检索多张表数据,用到了很多“in”这样低效的SQL查询方式,导致审批收件、提交下环节节点等功能用时很长,大概需要5-6秒的时间,用户体验差。

    优化措施:对单点认证接口CAS的调用机制进行升级改造。重写业务逻辑,单点登录后不再频繁调用CAS。对BPM流程接口服务【BusinessProcessService】、【inqureDrafBPDefines】改造及优化接口代码,增加java多线程并行执行机制,提高有效代码的运行效率,缩短数据库返回数据后Java代码业务逻辑处理的时长。同时对接口对应的SQL语句执行数据表分别添加索引,精简接口交互请求和返回数据包数据字段大小,提高网络层面传输效率。调整审批内部流程SQL查询的方式,尽量杜绝“in”查询方式。

 

 5 结语

    通过对应用系统的优化和改进,应用性能得到明显的改善。随着应用的推广,用户的增加,数据的增长,使用环境的变化,应用系统的性能也会相应改变,应用系统的运维和开发者应充分运用技术手段,将网络管理的理念引入到应用系统管理中,密切配合,不断优化系统,提升用户体验,提高工作效率。