系统性能监控利器--DT

一、背景

        每次分析用户访谈的结果,用户对性能总是不满意。软件开发商不遗余力投入资源来提升系统性能,是乎没收到预期的效果。客户想了解整个系统用户的访问情况,而我们只能给出单个功能优化功能前后的效果,达不到用户期望。

二、提升用户性能体验面临的问题

     1. 用户使用体验的问题:无法将用户的感知量化、可视化的呈现。缺乏用户行为的记录,用户投诉以后,很难还原问题的现场。

     2. 运维人员面临的问题:不能确切知道整个链路出了问题,调整可能涉及到多个部门,现在的监控只是单点的监控,没有确保整个链路的。

     3. 开发人员面临的问题:如果排除平台方面的问题,不能准确定位到具体的类、方法、SQL、内存泄露、资源未释放。

      现在解决现场的性能问题效率较低,有时候甚至定位不到问题,几个典型的场景:

      典型场景1:用户投诉某个功能慢;

      实施确认只是单个功能慢,整个系统正常,将IE插件httpwatch测试功能,将结果反馈给开发;

      开发确认是前段还是后端的问题,如果是后端,需要实施协调局方取数据库报告;

      取回数据库报告后,如果是SQL的问题则改之,如果不是则要找java代码的问题。

       整个过程即使是顺利也需要3个小时。

      典型场景2:用户反馈整个系统慢;

      实施取回weblogic日志和数据库报告;

      如果不能在日志中能分析出问题,则需要信息部分管不同领域的专责一同找问题,或是通过不断调整部署结构的方式试出,链路中哪个环节出了问题。

      典型场景3:用户反馈系统慢;

      实施稍后去验证慢的问题,发现问题已经好了;

      实施给开发反馈,开发说场景不能重现,以后再观察。

三、业界的解决方案

           公司面临的问题,早在二十年前业界就一直在寻求解决方案,孕育了一种新的软件类型APM(Application Performance Management),应用性能管理软件,APM发展的历史:

 第一代APM(1995-2000),以网络为中心

正是第一代互联网浪潮兴起的年代,那个时候,雅虎作为互联网公司的代表,引领一代潮流,美国人忙着铺光纤架网线,一个一个的站点被建立了起来。如果说网站的响应速度决定了用户体验的话,那么当时的网速就决定了网站的响应速度,因此,APM 1.0时代的软件功能就是这么简单:管理网络系统的性能

 第二代APM(2000-2005),以组件为中心

当时市值最高的公司里面是微软,当时的SUN正处于巅峰时期,市值接近 2000亿美元,美国人当时正在疯狂的建设数据中心,购买各种各样的硬件和软件。在这里,我们用一个专业名词来称呼他们,叫做基础组件 (Infrastructure)。那么,当时的APM系统已经到了第二代,作用是监控和管理各种基础组件的性能

国内的监控宝和深信服也属于这个领域,不同点在于监控宝是Saas,深信服是软件。

 第三代APM(2005-至今),以用户体验为中心

随着facebook,twitter这些应用提供商的兴起,越来越多的APP被用来服务全球客户;对于用户来说,他们访问的应用服务可能分布式的部署在全球的多个数据中心上,尤其是10年以后,新的移动访问方式的兴起,让每一个人的生活方式更加紧密的依赖于各种application。在这个时候,应用本身的性能越来越成为制约用户体验提升的瓶颈。这就是第三代APM软件的用武之地:第一是管理真实用户的体验,第二是进行端到端的业务交易性能分析

在IT界风声水起的电商、社交网络都运用的APM,自己开发的APM都是基于Google 的论文Dapper:

   淘宝:自己开发的鹰眼、dynaTrace

   eBay:dynaTrace

   Twitter:自己开发的Zipkin

四、解决方案

        要想解决公司性能提升遇到的困难,要么选用合适的一款APM软件,要么自己开发,曾经开发过Numen,最后以失败告终。选用一款APM软件是不错的选择。

        早在2008年就使用APM的软件HP Diagnostics,最终以失败告终。原因是虽然可以定位到请求的时间,只是应用服务器到数据库服务器的时间,还缺失从用户浏览器到应用服务器的时间。安装HP Diagnostics agent后对系统影响较大,在有的地市局是要求卸载的。

        在2014年3月使用深信服APM,有所进步,可以定位到客户端到应用服务器的性能,但发出来的请求开发人员还是不知道是哪段java代码或是哪段SQL有问题,还需要手工定位。

        使用DT可以实现请求全路径的跟踪,可以将一个请求涉及到的类,SQL语句绑定在一起。IE浏览器到应用服务器的性能也可以监控,原理是在IE注入js来监控,可以监控到类的具体方法性能,具体是那条SQL产生的问题,我认为它是终极解决方案。

五、使用dynatrace大致步骤

      在DT的官方网站上注册,他们会发相应的使用地址给你,下载软件和liencese

      客户端agent要安装在应用发布的机器上,weblogic里面要设置agent的环境变量,放在JAVA_OPTIONS里面,如下:

      -agentpath:/bea11/dt/dynatrace-6.1.0/agent/lib64/libdtagent.so=name=8022_6005_Monitoring,server=10.10.40.118:9998

      /bea11/dt/dynatrace-6.1.0/agent/lib64/    agent的安装目录

      8022_6005    服务端配置的监听名称

      10.10.40.118 服务端IP


export MEM_ARGS="-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m"
export  JAVA_OPTIONS="${JAVA_OPTIONS} -agentpath:/opt/dynatrace-6.3/agent/lib64/libdtagent.so=name=OracleWebLogic_Monitoring,server=10.10.31.132:9998"

10.10.31.132是server的IP地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值