性能监测工具在信息系统诊断调优中的应用
0 引言
国家电网公司信息化建设在经历了高速发展阶段后,业务需求呈井喷式增长,业务融合、数据共享等高端集成应用呈跨越式发展,信息系统部署模式、运行模式日益复杂[1-2]。同时,随着国家电网公司“两个转变”的不断深入,要求业务响应更快速、服务更优质,对信息系统运维工作提出了更高的要求[3-4]。
目前信息系统运维工具主要面向基础架构层面,点阵式管理模式又造成运维孤岛,缺乏端到端的应用层监控手段[5]。业务系统关联日益复杂,一旦在应用层出现性能下降和不可用问题,即面临问题现场难以复现,需要效率低下的手工排查,系统管理人员运维压力持续增长,且无法高效保障信息系统的用户体验[6]。
为解决上述问题,运维单位将性能监测工具引入信息系统高级诊断调优工作中[7-10],针对信息系统的硬件环境、操作系统、数据库、应用中间件、集成服务、系统架构、典型业务等运行指标进行深度诊断,对直接决定用户体验的应用层级进行代码级的深度监测[11-14],实现诊断工作的自动化,辅助运维人员快速定位故障,优化系统性能,提高工作效率。
1 性能监测工具核心原理、关键功能模块及性能指标
1.1 核心原理
性能监测工具在信息系统高级诊断调优过程中,通过在应用服务器(中间件)中植入Java Agent探针(基于JDK 提供的Instrumentation机制),在应用代码类文件被加载时,通过字节码技术,动态地对Framework、数据库、NoSQL、Web Service、组件等实施监控。
用户在通过终端浏览器访问应用页面时,页面监控模块即开始页面用户体验相关的性能监控。用户访问请求进入数据中心后,由应用监控模块对请求流经的Web服务器、应用服务器、关系型数据库、非关系型数据库等组件进行代码级性能监控,从而获得代码执行效率、数据库调用效率、应用接口调用效率,构建出业务层的数据流向拓扑图,并基于拓扑实现代码级的信息系统性能和可用性监控,实时将监测数据展现在可视化监控模块上。性能监测工具的实现机制如
图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 某系统应用拓扑图Fig.2 Application topology of a system
系统Web应用过程分析结果如
图3 系统最耗时Web应用过程堆叠Fig.3 The stack diagram of most time-consuming Web application process
图4 系统响应时间和吞吐率Fig.4 Response time and throughput diagram
图5 最耗时SQL操作堆叠Fig.5 The most time-consuming SQL operation stack diagram
图6 数据库吞吐率堆叠Fig.6 Database throughput stack diagram
在错误分析模块中,应用错误率如
图7 应用错误率Fig.7 Application error rate diagram
图8 错误列表Fig.8 Application error rate diagram
外部应用分析结果展示了应用系统平均响应时间及吞吐率(见
图9 平均响应时间Fig.9 Average response time
图10 系统9月份的Apdex值曲线Fig.10 The Apdex value curve of the system in September
3 应用效果评价及总结
目前,开展性能监测工具部署试点实施的28套业务系统运行正常,性能监测平台运行稳定,性能数据抽取准确及时。在6个月的部署实施期内,28套系统共部署探针227个,发现问题144个。其中,Web应用过程问题最多,其次为系统错误,各问题占比如
图11 系统各问题占比Fig.11 Proportion of problems in the system
在持续6个月的监测过程中,平台收集的性能数据覆盖了业务的高峰期和低谷期。系统在业务高峰期时的性能数据更能反映出系统开发存在的问题,监测结果充分验证了性能监测工具的兼容性和稳定性。在阶段性巡检和消缺工作中,性能监测工具可以为运维和开发单位提供故障和优化点的定位分析建议,切实解决系统性能问题,并形成系统化的使用建议文档,为后期推广提供实践经验支持。
4 结语
目前,性能监测工具已在国家电网公司的部分业务系统中完成部署与应用,自动构建了业务级和应用级的全景拓扑图,实现了应用层的持续性监控能力,辅助运维人员掌握当前业务系统运行的整体情况。后期,可基于此性能数据集成平台将更多的一级部署系统和二级部署系统纳入监测范围,形成统一的应用系统性能数据集成平台,自动构建业务级和应用级的全景拓扑图,实现应用层的持续性监控,辅助运维人员掌握业务系统运行的整体情况[15-16]。另外,可考虑基于性能监测平台数据,与现有评价数据相结合,建立信息系统质量评价指标和评价体系,促进运维单位与研发单位间良性互动,不断提升国家电网公司的信息化应用水平。

责任编辑:售电衡衡
-
权威发布 | 新能源汽车产业顶层设计落地:鼓励“光储充放”,有序推进氢燃料供给体系建设
2020-11-03新能源,汽车,产业,设计 -
中国自主研制的“人造太阳”重力支撑设备正式启运
2020-09-14核聚变,ITER,核电 -
探索 | 既耗能又可供能的数据中心 打造融合型综合能源系统
2020-06-16综合能源服务,新能源消纳,能源互联网
-
新基建助推 数据中心建设将迎爆发期
2020-06-16数据中心,能源互联网,电力新基建 -
泛在电力物联网建设下看电网企业数据变现之路
2019-11-12泛在电力物联网 -
泛在电力物联网建设典型实践案例
2019-10-15泛在电力物联网案例
-
权威发布 | 新能源汽车产业顶层设计落地:鼓励“光储充放”,有序推进氢燃料供给体系建设
2020-11-03新能源,汽车,产业,设计 -
中国自主研制的“人造太阳”重力支撑设备正式启运
2020-09-14核聚变,ITER,核电 -
能源革命和电改政策红利将长期助力储能行业发展
-
探索 | 既耗能又可供能的数据中心 打造融合型综合能源系统
2020-06-16综合能源服务,新能源消纳,能源互联网 -
5G新基建助力智能电网发展
2020-06-125G,智能电网,配电网 -
从智能电网到智能城市