欢迎来到天天文库
浏览记录
ID:37493251
大小:7.04 MB
页数:54页
时间:2019-05-24
《字节码技术在应用性能领域的实践》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、字节码技术在APM领域的实践听云--杨金全一段代码、几个妹纸…客厅投诉蜂拥而至。。。我的应用怎么了。。。我的应用怎么了。。。一般情况下,应用状态来源有……..2用户投诉应用日志1但你随时会面对……偶发性故障?摸不到头脑?无法定位?定位不准?猿类。。。提纲应用性能监测与管理应用性能指标Java应用性能影响因素应用性能检测与管理的工具及技术基于字节码技术的听云Server解决方案1、应用性能监测与管理1.1、什么是应用性能监测与管理ApplicationPerformanceManagement&Monitoring简称APM,一个比较新的网络管理方向,主要指对企业的关键业务应用
2、进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本(TCO)。•监测企业关键应用性能•通过应用过程监测、模拟等手段可真实测量最终用户的响应时间及是否发生错误•快速定位应用系统性能故障•通过对应用系统各种组件(Framework、数据库、NoSQL、外部服务、中间件)的监测,迅速定位系统故障,如数据库查询缓慢、外部API不可用等问题。•优化系统性能•精确分析系统各个组件占用系统资源情况,中间件、数据库执行效率,根据应用系统性能要求提出专家建议,保证应用在整个生命周期内使用的系统资源要求最少,节约TCO。1.2、应用性能监测的必要性对于任何一个服务端应用
3、来说,监控都是至关重要的一环。一个系统在运行过程当中太容易出现故障,网络、存储、系统负载、软件Bug,任何一个点出现问题都有可能影响到整个系统的稳定运行,因此,监控必不可少。一个完善的系统监控方案要从两个方面帮助我们:•1、不断检查各项服务的稳定性,出现问题第一时间通知相关人员•Nagios:系统和网络监视工具--警报•2、记录系统、应用运行的各项指标,帮助运维人员全面掌握系统、应用运行状况,从而做到防患于未然2.应用性能指标衡量指标响应时间(用户感知、独占时间)•阻塞时间•应用层时间•数据库时间•NoSQL时间•WebService时间吞吐率•rpm--requestspermi
4、nute•cpm--callsperminute错误率(可用性)CPU利用率内存使用率线程数量3、Java应用性能影响因素3、Java应用性能影响因素业务代码数据库NoSQLWebService后台Job异常和错误JVM(内存、GC、线程、Session)4、应用性能检测与管理的工具及技术4.1、logsCost处理各种各样的日志格式Error-log,SlowLog,SQLSlowLog…publicvoida(){longbeginTime=System.currentTimeMillis();…额外的代码开发量…log.debug(System.current
5、TimeMillis()-beginTime);}时间成本无法快速串联业务组件消耗时间繁琐的运维工作4.2、JMXJMX--JavaManagementExtensions,即Java管理扩展。JVM本身的很多运行时参数都通过JMX暴露出来了(JDK1.5需要增加-Dcom.sum.mamagement.jmxremote),如内存、GC等相关参数,可以很简单地自定义MBean来将应用本身的参数暴露出来。•内置MBean•自定义MBean•jconsole•jmxtrans(http://www.jmxtrans.org/)+Ganglia4.2.1内置MBeanimportjav
6、a.lang.management.ManagementFactory;•ManagementFactory.getMemoryMXBean();•ManagementFactory.getMemoryPoolMXBeans();•ManagementFactory.getOperatingSystemMXBean();•ManagementFactory.getThreadMXBean();4.2.2、自定义Mbean--获取tomcatsession数4.2.3、jconsole4.2.4、jmxtrans+Ganglia4.3、Metrics+Graphite(一)5种度量的类型
7、:Gauges,Counters,Histograms,Meters,Timers.可以通过JMX,终端,CSV文件来报告Metrics指标4.3、Metrics+Graphite(二)Graphite是一个用于采集应用实时信息并进行统计的开源项目,可用于采集多种应用服务运行状态信息4.4、SpringInsightInsight通过AspectJ以及Spring框架来显示应用程序性能的详细信息,这些信息包括什么地方消耗了多少
此文档下载收益归作者所有