性能监测工具在信息系统诊断调优中的应用

2018-03-20 15:33:27 电力信息与通信技术  点击量: 评论 (0)
随着国家电网公司信息化业务需求快速增长,业务系统关联日益复杂,一旦在应用层出现性能下降和不可用问题,则现场难以复现,需要效率低下的手工排查,系统管理人员运维压力持续增长,且无法高效保障信息系统的用户体验。文章将性能监测工具引入信息系统高级诊断调优工作中,针对信息系

0 引言

国家电网公司信息化建设在经历了高速发展阶段后,业务需求呈井喷式增长,业务融合、数据共享等高端集成应用呈跨越式发展,信息系统部署模式、运行模式日益复杂[1-2]。同时,随着国家电网公司“两个转变”的不断深入,要求业务响应更快速、服务更优质,对信息系统运维工作提出了更高的要求[3-4]

目前信息系统运维工具主要面向基础架构层面,点阵式管理模式又造成运维孤岛,缺乏端到端的应用层监控手段[5]。业务系统关联日益复杂,一旦在应用层出现性能下降和不可用问题,即面临问题现场难以复现,需要效率低下的手工排查,系统管理人员运维压力持续增长,且无法高效保障信息系统的用户体验[6]

为解决上述问题,运维单位将性能监测工具引入信息系统高级诊断调优工作中[7-10],针对信息系统的硬件环境、操作系统、数据库、应用中间件、集成服务、系统架构、典型业务等运行指标进行深度诊断,对直接决定用户体验的应用层级进行代码级的深度监测[11-14],实现诊断工作的自动化,辅助运维人员快速定位故障,优化系统性能,提高工作效率。

 1 性能监测工具核心原理、关键功能模块及性能指标

1.1 核心原理

性能监测工具在信息系统高级诊断调优过程中,通过在应用服务器(中间件)中植入Java Agent探针(基于JDK 提供的Instrumentation机制),在应用代码类文件被加载时,通过字节码技术,动态地对Framework、数据库、NoSQL、Web Service、组件等实施监控。

用户在通过终端浏览器访问应用页面时,页面监控模块即开始页面用户体验相关的性能监控。用户访问请求进入数据中心后,由应用监控模块对请求流经的Web服务器、应用服务器、关系型数据库、非关系型数据库等组件进行代码级性能监控,从而获得代码执行效率、数据库调用效率、应用接口调用效率,构建出业务层的数据流向拓扑图,并基于拓扑实现代码级的信息系统性能和可用性监控,实时将监测数据展现在可视化监控模块上。性能监测工具的实现机制如图1所示。

图1 性能监测工具的实现机制Fig.1 Implementation mechanism diagram of performance monitoring tool

运维人员依靠性能监测工具提供的网络拓扑图,实现端到端的完整监控,快速定位整个业务调用链中存在的问题,及时解决问题,并结合业界标准对各信息系统性能进行持续的客观评价。

1.2 关键功能模块

性能监测工具的关键功能模块主要包括应用拓扑分析、Web应用过程分析、数据库性能分析、错误分析、外部应用分析等。

1.2.1 应用拓扑分析模块

性能监测工具构建业务层的数据流向拓扑图,并基于拓扑实现代码级的业务系统性能和可用性监控。该模块不仅可展示应用与应用、应用与服务之间的调用关系,而且可以显示应用与应用间的性能数据以及当前应用的语言环境。将光标悬停到该应用或被调用其他应用的图标上时,会弹框显示相关的性能数据,包括调用服务数、吞吐率、响应时间、错误率等相关数据。

1.2.2 Web应用过程分析模块

在该模块可查询所选应用下事务的整体性能和具体事务的性能。当事务的响应时间大于设置的阈值时,可以通过慢事务追踪列表对该事务进行详细追踪。通过查看慢事务追踪详情,可获取该事务所属应用、慢追踪发生的时间、响应时间、请求URL、线程名称、请求参数以及该事务中的代码处理耗时信息。

1.2.3 数据库性能分析模块

数据库分析模块包括使用SQL的关系型数据库分析以及非关系型数据库NoSQL分析,用来以数据库语句访问的维度来查看应用性能数据。运维人员可查看各应用数据库语句的整体性能,也可查看具体数据库语句的性能。当数据库语句的响应时间大于设置的阈值时,可对数据库语句进行详细追踪。通过查看慢数据库操作详细信息,可获取操作发生时间、总耗时长、调用次数、完整的数据库语句信息及Trace信息。

1.2.4 错误分析模块

错误分析模块用于分析当前应用或应用实例中发生的错误或异常情况。分析结果包括错误类型、错误率、错误发生次数、Trace信息等。

1.2.5 外部应用分析模块

外部应用指应用通过HTTP、Thrift、Dubbo或Web Service方式调用外部应用提供的服务,该模块用于分析应用使用外部服务的相关性能。

1.3 性能指标

性能监测工具各模块分析结果以图表形式展示在性能监测平台中,涉及到的主要性能指标及含义如下。

1)响应时间:指应用系统(包括应用服务器、数据库、事务、外部应用等)从收到请求到返回响应的时间。

2)请求阻塞时间:请求到达前端服务器及应用服务器收到请求的时间。

3)代码执行时间:指纯粹用于执行当前函数代码的时间。

4)Apdex:为用户满意度指标,把最终用户体验和应用性能量化为一个0或1的数值,反映系统性能和可用性状况。1表示所有用户都满意,0表示没有满意的用户。

5)吞吐率:指单位时间内应用、事务及外部应用等模块收到的请求次数。

6)错误率:指应用、事务、数据库及外部应用等模块在某个统计周期内发生错误的次数与总请求(或调用/访问)次数的比值。

7)墙钟时间比:该数值反映Web应用过程的繁忙程度和对CPU资源的消耗程度,比值越高表示消耗的资源越多。

 2 性能监测工具用于高级诊断及调优实例分析

以部署性能监测工具的某信息系统2017年9月的性能监测结果为实例进行详细分析。

图2为某系统应用拓扑图,该系统共调用系统服务12个,且各服务调用响应时间均较少,系统运行状态良好。若某应用响应过慢,系统圆形图标会改变为相应状态颜色,方便运维人员及时发现问题。

图2 某系统应用拓扑图Fig.2 Application topology of a system

系统Web应用过程分析结果如图3、图4所示。图3展示了系统耗时排在前5的Web应用过程,其中,SpringController/…troller/应用过程耗时最高。图4显示当月应用吞吐率,13日—15日系统被频繁调用,平均响应时间较长。查看该应用过程所执行代码,发现在调用“SendController.startTask”方法时耗时较多,运维人员及时进行了调优处理。

图3 系统最耗时Web应用过程堆叠Fig.3 The stack diagram of most time-consuming Web application process

图4 系统响应时间和吞吐率Fig.4 Response time and throughput diagram

图5显示系统运行过程中耗时排在前5的SQL操作,运维人员在查看SQL语句的相关表及完整SQL语句信息后,对SQL语句进行调优。从图6可知应用数据库各操作的吞吐率。

图5 最耗时SQL操作堆叠Fig.5 The most time-consuming SQL operation stack diagram

图6 数据库吞吐率堆叠Fig.6 Database throughput stack diagram

在错误分析模块中,应用错误率如图7所示,该月系统错误率较低,均在0.3%以下,系统运行状态良好。图8为系统错误列表,运维人员查看具体错误类型及相关信息时,可获取该错误的Web应用过程、调用堆栈等信息,及时发现系统故障,并与研发人员联系,对代码做出相应优化。

图7 应用错误率Fig.7 Application error rate diagram

图8 错误列表Fig.8 Application error rate diagram

外部应用分析结果展示了应用系统平均响应时间及吞吐率(见图9),若系统某一服务平均响应时间过高,运维人员可查看具体服务名称及调用者耗时等数据,进而对其进行优化。

图9 平均响应时间Fig.9 Average response time

图10为该系统9月份的Apdex值曲线图,平均值达0.994,系统性能和运行状态良好。另外,运维人员可应用此指标在监测平台设置警报,当Apdex值持续降低时,系统将自动告警,及时解决问题,提高用户体验。

图10 系统9月份的Apdex值曲线Fig.10 The Apdex value curve of the system in September

 3 应用效果评价及总结

目前,开展性能监测工具部署试点实施的28套业务系统运行正常,性能监测平台运行稳定,性能数据抽取准确及时。在6个月的部署实施期内,28套系统共部署探针227个,发现问题144个。其中,Web应用过程问题最多,其次为系统错误,各问题占比如图11所示。 针对性能监测工具发现的144个问题,经各研发单位进行确认,将其中77个问题列入调优计划中。其中,某系统应用性能监测工具提供的调优建议调优后获得明显性能提升,平均响应时间从75 ms降至15 ms。

图11 系统各问题占比Fig.11 Proportion of problems in the system

在持续6个月的监测过程中,平台收集的性能数据覆盖了业务的高峰期和低谷期。系统在业务高峰期时的性能数据更能反映出系统开发存在的问题,监测结果充分验证了性能监测工具的兼容性和稳定性。在阶段性巡检和消缺工作中,性能监测工具可以为运维和开发单位提供故障和优化点的定位分析建议,切实解决系统性能问题,并形成系统化的使用建议文档,为后期推广提供实践经验支持。

 4 结语

目前,性能监测工具已在国家电网公司的部分业务系统中完成部署与应用,自动构建了业务级和应用级的全景拓扑图,实现了应用层的持续性监控能力,辅助运维人员掌握当前业务系统运行的整体情况。后期,可基于此性能数据集成平台将更多的一级部署系统和二级部署系统纳入监测范围,形成统一的应用系统性能数据集成平台,自动构建业务级和应用级的全景拓扑图,实现应用层的持续性监控,辅助运维人员掌握业务系统运行的整体情况[15-16]。另外,可考虑基于性能监测平台数据,与现有评价数据相结合,建立信息系统质量评价指标和评价体系,促进运维单位与研发单位间良性互动,不断提升国家电网公司的信息化应用水平。

大云网官方微信售电那点事儿

责任编辑:售电衡衡

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞