王强
摘要:针对企业因数据规模扩大而导致的信息系统运维困难问题展开研究。以应用性能管理(APM)技术为核心,采用模拟用户监控与监听型监控相结合的数据采集方式,围绕企业在应用性能管理方面的实际需求,设计和实现了一款综合型监控管理平台。实现了终端性能监控、数据库性能监控、故障定位和关键事务跟踪等功能,显著提高了管理效率。
关键词:应用性能;用户体验;APM;监控方案;软件设计
中图分类号:TP393文献标志码:A文章编号:1008-1739(2018)24-63-3
0引言
在现代信息化社会,随着企业规模的增大和业务范围的扩张,其对应的IT系統也日益庞大,网络、服务器和软件应用系统之间的关联也愈发的错综复杂,进一步增大了系统运维工作的难度[1],用户的体验度也因此受到了严重的影响。目前我国大部分企业依旧在遵循传统的IT运维模式来实现对系统的监控与管理,在该模式下,管理的对象是系统中的各个组件,包括各类网络节点设备、服务器、存储设备、中间件和数据库等IT资产[2]。
IT模式针对结构较为简单的系统管理,但该方法缺乏统一的业务和IT视图,只能对各个设备的运行状态进行监管,而无法从业务角度去衡量IT服务质量,因此在大规模数据存储及通信的复杂环境下,无法实现高效的端到端的用户体验和应用管理。应用性能管理的推出,显著增强了大规模数据业务的处理效率,提高了用户服务水平,为企业赢得了更好的发展空间。
1 APM
APM是近年来衍生的一种新型应用性能管理理念,APM基于便捷的网络通信和智能化的数据分析技术,可有效整合企业内部规模庞大且广泛分布的数据资源,并对其实施统一的监控与管理策略,并从多个层面对企业IT系统进行性能评测与分析,从全局上把握系统内数据流的特征[3],其核心功能主要包括以下几种。
(1)对关键应用的性能进行实时监控
APM技术首先从应用层面反映当前网络性能水平,通过采用事务处理过程检测和在线嗅探等技术,对当前任一事务的运行状态和响应时间进行监控,以评估企业应用服务的性能表现[4]。另一方面,APM还可对大规模用户操作进行在线统计与分析,对某一应用的使用频率等信息进行汇总分析,为企业改进应用服务质量提供参考。
(2)对故障进行快速定位与排查
APM技术可针对整条数据传输链进行监控与检索,从用户端的浏览器、网络中的各个传输节点与中间件服务器和各类数据存储设备,全方位地监测业务应用性能情况[5]。在监测对象的选择方面,可通过多种性能参数参与评估,如应用响应时间、端口数据流量及协议数据流量等,从而实现对问题原因和故障点的综合分析与评价,极大地提高了故障排查的准确性。
(3)对系统性能进行优化
APM技术提供的全局监测功能,帮助运维人员很好地掌握了系统内各类应用的运行状况以及对资源的占用情况,实现了对中间件、数据库的执行效率的精确分析,找出其中存在的性能瓶颈并加以调整,从而逐步优化整个系统的应用逻辑[6]。
(4)对应用发展趋势进行预测
通过APM技术的在线统计功能,可对本系统内所有应用的使用频率及生命周期进行准确的汇总分析,从而帮助研发人员对系统中各种资源的应用趋势进行预测,使得研发新应用服务的工作更具针对性。另一方面,由于采集到的性能数据规模远远超过以往传统的监控模式,也使得构建客观的性能负载模型成为可能,从而可对各种资源配置方案进行可靠的仿真与论证,促进系统容量的合理扩充。
2设计与实现
2.1监控方案的设计
APM系统同传统的IT管理系统相比,最大的特点就是更加侧重从应用表现方面来对网络和数据处理服务的性能状态进行监测与分析,并从全局角度快速判定故障与异常的发生点,其数据采集的方式主要有以下2种。
①模拟用户监控方式:属于主动监测,需要在APM系统中配置一定数量的测试终端,用以模拟真实用户向各类服务器发起服务请求,从而记录这些服务器的反馈信息以及响应时延,最终得出监测对象较为精确的应用运行状态和服务质量。
②监听型方式:属于被动监测,主要通过监听端口镜像、多路转发以及链路串接等方式收集网络中传输的用户数据包、信令数据包(OAM)和管理信息(SNMP MIB/RMON),同时监测通过这些网络节点的数据流量,从而对该区域内的应用服务性能进行评估。优点是不会对网络通信资源和服务器资源造成额外的消耗,但缺点是仅能获得局部网络的信息,评估结论有一定的片面性[7]。
APM系统的设计方案采取了以上2种方法有机结合的方式,既考虑到了监控系统本身对网络性能造成的影响,又确保了数据采集的准确性,保障了网络和应用服务的正常运行,系统的网络拓扑结构如图1所示。
2.2软件架构设计
系统在设计过程中,充分兼顾了IT系统内各种应用服务在研发技术方面的多样性,因此可实现对基于J2EE, .Net,PHP, Python等技术开发的业务系统进行有效的监控。例如,在针对最主流的J2EE平台的APM系统中,就包括了Application探针、Application管理服务器和Application管理控制台3个主要部件。
(1)Application探针
Application探针部署在各个应用服务器中的Java虚拟机上,并与监听设备协同完成数据采集工作,包括各类J2EE服务器进程的运行状态、EJB和Java Bean中涉及到的各种对象与方法的性能参数等,这些信息汇总分类后,将分别封装并通过HTTP协议传输到AI管理服务器。
(2)Application管理服务器
接到从Application探针处传来的性能数据之后,Application管理服务器将数据分类存储至文件和数据库中,并调取相关的分析软件对这些数据进行加工处理,通过直观的界面向用户提供可靠的图形化展示。Application管理服务器将收到的大量性能数据进行快速匹配与关联,并基于预设的风险阈值判定当前系统是否有潜在的性能异常问题,以及是否需要启动告警功能。
(3)Application管理界面
为了提高系统的通用性与维护的便捷性,采用Web技术设计实现了相关的人机交互界面,系統中的所有功能均可在页面中完成操作,并得到反馈结果。
3系统实现
系统的主要功能包括终端性能监控管理、页面性能监控管理、数据库性能监控管理、预警告警管理、应用性能诊断与故障定位及对关键事务的跟踪管理等,基本涵盖了应用性能管理的各个层面,可有效提高系统的监控水平。系统的应用监控管理主界面如图2所示,包括了多项监测性能指标,如应用系统平均响应时间、单个事务响应时间、应用吞吐量、应用系统性能指数Apdex、应用系统错误率及SQL语句执行情况等。
浏览器页面分析的监控界面如图3(a)所示,用户可以通过该界面了解受访页面列表、页面平均加载时间、页面流量及Browser Trace列表等应用前端性能状况。对于问题页面,管理员可以点击受访页面链接,进入单页面分析,了解页面平均加载时间、网页流量、页面开始/跳转时间、请求重定向时间、本地缓存加载时间、DNS解析时间、TCP传输时间、HTTP请求/响应时间等相关指标,帮助用户进行浏览器页面性能诊断。
数据库SQL语句性能分析界面如图3(b)所示,可以针对SQL语句的类型和SQL语句单元进行性能排序,其中排序的参考指标可以由管理员灵活选择。针对性能表现较差的SQL语句单元,系统记录其执行情况,包括SQL语句的上下文环境、各个环境的时间消耗占比及调用参数等,并在界面中陈列显示。
图3浏览器页面分析及数据库SQL语句执行监控界面
关键事务的跟踪管理界面如图4所示,在实际运维应用系统的过程中,存在某些关键的事务,其重要性远远超过其他一般类型的事务,因此需要对其精确监控。如用户的登录、交易等操作,或者从性能角度来看最重要的搜索操作,系统管理者可以根据运维需求灵活地设定这些关键事务,并设定合理的性能参数指标。
4结束语
本系统将APM技术与传统的IT监测技术相结合,设计并实现了一套新型的企业级业务性能监测分析系统,给出了系统的框架结构与具体的功能设定方案,实现了对系统内的数据存储流程、中间节点设备运行状态和应用服务执行过程进行实时的监测,在全面收集相关性能数据的同时,还能够迅速地发现系统内的异常与故障点,以及在大规模历史数据积累的条件下,向管理者提供容量规划、性能分析等方面的综合决策数据。
参考文献
[1]陈鹏.基于Android应用的性能监控系统的研究与实现[D].广州:华南理工大学,2015.
[2]张熙.Web应用性能优化模型及测试框架的研究[D].南京:南京航空航天大学,2008.
[3]黄鹤.Web应用程序的性能测试研究及其应用[D].成都:西南石油大学,2006:65-66.
[4]陈月云,熊高云,刘丽,等.基于流量工程和策略机制的网络资源分配方案[J].通信技术,2009,42(11):141-143.
[5]龙耀华,牛作元.基于APM的网络性能管理研究[J].通信技术,2013,12(8):68-72.
[6]王锐,陈丽.应用性能管理的设计方法研究[J].计算机应用与软件,2009,26(9):198-199.
[7] Sebastian E,Gregg R,Srikanth K.Leveraging User-session DatatoSupportWebApplicationTesting[J].IEEETransactions on Soft-ware Engineering,2005,31(3):66-67.