• jprofiler8使用小贴士


    说明:本文的小贴士是针对jprofiler8的,其他版本上可能有不适用的地方

    贴士一:使用jpenable监控,无需增加jvm参数和重启

    • jprofiler8服务端监控的时,有四种方式,主要为需要增加jvm参数和不需要增加jvm参数,离线模式和非离线模式,其中最简单的使用方式为:直接执行jprofiler8/bin/下面的jpenable,选择要监控的应用程序的pid,指定端口号

    服务器执行如下:

    qaperf@classb:~/perftest/jprofiler8/bin$ ./jpenable Connecting to org.apache.catalina.startup.Bootstrap start [14007] ... Please select the profiling mode: GUI mode (attach with JProfiler GUI) [1, Enter] Offline mode (use config file to setprofiling settings) [2]1Please enter a profiling port [31757]8849You can now use the JProfiler GUI to connect on port 8849

    四种方式对比

    贴士二:设置sampling或instrument采集模式

    •      jprofiler客户端连接时,可以设置监控方式,其中在Method clall recording中有      定制监控方法分为,instrumentation方式和sampling方式

      • instrumentation(注入)方式,是指在方法中注入字节码,记录监控信息,优点,结果更准确真实,监控的数据更多,包含调用次数等,缺点:性能开销大

      • sampling(采样)方式,是指,通过额外的线程,周期性的采集其他线程的执行信息,jprofiler8中默认的采集间隔为5ms(visualVM中默认的采样时间为100ms),优点:开销小;缺点:无法采集调用次数等信息,且对于执行时间短且调用频率高的接口存在采集遗漏的情况

    贴士三:设置CPU Profiling的统计时间类型    

    • Cpu Profiling,统计方法的执行时间有两种:

      • 一种:Elapsed time:(wall clock time),统计的是从方法进入到离开的时间,这种统计方式简单,开销小,但是统计出来的时间可能比真实的CPU时间长

      • 一种:Estimated CPU time:(CPU time)真正的CPU时间,开销大

    贴士四:CPU监控之Call Tree层的监控点      

    • 右键,通过view settings可以设置显示的数据内容,该图片上包含了总时间、inherent time(即该方法的执行时间减去节点的执行时间)、执行次数、对应的类和方法

    • 层级展开,同故宫百分比可以看到消耗CPU的比例,这个接口中,freemarker消耗CPU约为70%以上,为最消耗CPU的方法

    • 方法前面的图标,绿色的m表示method,如果通过上方的Aggregation level选择Class or Package,会对应变成紫色的C或者黄色的P;红色的箭头表示Servlets,圆球表示browser,即对应url;如果遇到其他的一些看不懂的图标可以参见jprofiler的help文档,非常的全面和细致

    贴士五:CPU监控之hot spot的使用                 

    • 点击host spot 可以查看当前的热点方法,找到是哪些方法最消耗CPU

    • 其中Filter classes这儿有个设置,默认情况下是 show separately,是每个方法独立的时间统计,不包含调用关系,推荐使用Add to calling class,这个是包含所调用方法时间的统计,这个更能从业务上看到是因为什么导致的CPU消耗高

    • 点击+号展开热点方法,可以看到是哪些更上层的方法调用了它

    贴士六:CPU监控之动态修改监控配置  

    • Profiling setting

    • 监控过程中,可以通过点击session setting 实时调整监控配置

    • 设置好后,点击Apply now可以立刻应用到当前监控中

    使用精华总结

    1. 推荐使用jpenable的形式链接远程服务

    2. 推荐不改变jprofiler的默认配置方式

    3. CPU监控使用hot spot时,推荐查看下Add to calling class的统计结果,方便理解

    4. visualVm也是通过sampling的方式进行CPU Profiling分析的,但是这种方式有个弊端:当存在某些接口执行时间较短且高频繁调用时,不易发现;而且采样存在遗漏,统计的结果分析不很清楚,需要使用instrument的方式进行补充验证。

    安大叔说

    我们都是乌龟,背负着责任和梦想,也曾怨愤,终有一天,你会发现,它们成了你唯一不离不弃的依靠

    安大叔—做一个有态度、有思想的测试从业者 欢迎大家添加微信号:andashu1006进行交流
  • 相关阅读:
    Vue路由机制
    谷歌浏览器打不开应用商店的解决方法
    Vue报错——Component template should contain exactly one root element. If you are using vif on multiple elements, use velseif to chain them instead.
    Vue.js学习之——安装
    Vue使用axios无法读取data的解决办法
    关于localstorage存储JSON对象的问题
    2013年整体计划
    个人喜欢的警语收集
    Linux防火墙的关闭和开启
    Flex修改title 转载
  • 原文地址:https://www.cnblogs.com/andashu/p/6273964.html
Copyright © 2020-2023  润新知