APM缩写是 Application Performance Management & Monitoring,应用程序的性能服务管理和监控,
用到过一个工具叫TProfiler,来查看方法耗时的,可以具体到每一个get,set方法的耗时,当然可以通过设置包路径,来过滤不必要的耗时信息,TProfiler是淘宝自研的性能监控工具,源码地址:http://code.taobao.org/p/tprofiler/wiki/index/ ,大家可以查看,整个过程是 在JVM启动时把时间采集程序注入到字节码中,整个过程无需修改应用源码.运行时会把数据写到日志文件,工程师通过查看日志,来断言一些很耗时的方法体,并进行性能优化。
接下来我再来讲一下什么是APM,对于APM,其实之前我也不是很清楚,压根没听说过,也是前两天,晚上再阿里云市场上浏览SAAS中间件的时候,偶然发现的,当时发现有一个中间件,当然好奇之心让我对于他们宣扬的“实时抓取缓慢的程度和SQL语句”必须要一探究竟,于是,我就去官网 https://www.oneapm.com/ 想进行一次试用,中文名叫:蓝海讯通,布署其实非常简单,只需要下载一个文件OneAPM,将这个文件夹放到tomcat根本录,然后修改oneapm.properties文件,将获取到的试用key值填进去就可,这个是必须要填的,要不然人家怎么去管控你,填完之后,使用java
-jar oneapm.jar install,将这个jar包安装一下,这个命令主要会去修改你的 catalina.sh文件,增加两行命令,启动的时候,会去将这个jar包装载到jvm里面,原理根TProfiler应当差不多,通过值入字节码去采集日志信息,接下来重启就可以了。 等五分钟,登录到www.oneapm.com点击AI查看即可。
APM国外很早之前就有公司在做了,有一个叫new relic再做,百度了一下,蝉游记团队也在一年前推荐过,官网:https://newrelic.com 大家可以去注册,下载,布署方式跟oneapm是完全一样的,安装过程我就不一一讲了,挺简单的。
差不多15分钟吧,就整完了,主要还需要VPN,稍慢一点,要不然5分钟都不需要。
环境打通后,记得那个key,一定要修改newrelic.yml 这个文件,key变一下,重启就可以了。
工欲善其事,必先利其器,有了这个神器,系统的性能耗时,一个普通的工程师稍加指导其实就可以进行性能优化了,newrelic不单单支持java,php,ruby等等都可以布署使用。
链接:https://www.jianshu.com/p/646052764c85