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

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

贴士一:使用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的方式进行补充验证。

安大叔说

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

jprofiler8使用小贴士的更多相关文章

  1. Angular2 小贴士 Name

    Angular2 正式版已经发布了一个月了,我也是通过各种方式在进行验证是否可以满足我们的需求,今天我就发现了一个问题.现在我们来一起说明一下,这个可能不算是bug,而应该需要我们记住就可以了. 我们 ...

  2. 【小贴士】虚拟键盘与fixed带给移动端的痛!

    前言 今天来公司的主要目的就是研究虚拟键盘与fixed的问题,期间因为同事问起闭包与事件委托(阻止冒泡)相关问题,便穿插了一篇别的: [小贴士]工作中的”闭包“与事件委托的”阻止冒泡“,有兴趣的朋友可 ...

  3. SVN小贴士

    我辛辛苦苦写的到哪里了? SVN小贴士SVN服务器上的代码项目组公用,你的每一个提交都会体现给项目组每个人,所以提交要慎重,要注意避免代码冲突,使用SVN小贴士: 1.提前宣布开发计划,保持项目组成员 ...

  4. android性能小贴士 翻译

    转自http://developer.android.com/training/articles/perf-tips.html 性能小贴士: 这篇文档主要一些微优化可以提升应用程序性能,但是这些改变不 ...

  5. 小贴士——提高PHP程序在NGINX代理服务器的性能

    NGINX本身就是面向最大性能的代理服务器,因此在使用NGINX,并没有性能调整的配置工作.但是却有很多选项可用于定制NGINX的行为,利用底层硬件和操作系统. 下面将介绍用于提供PHP在NGINX的 ...

  6. 初识bd时的一些技能小贴士

    既然小豆腐如此给力,而且充分的利用主动学习的优势,已经有了迅速脑补,压倒式的优势,不过这只是表面而已,一切才刚刚开始,究竟鹿死谁手,还有待验证. 以上可以看到,小豆腐为什么拼命的要teach我们了么, ...

  7. SharePoint每日小贴士Web部件

    SharePoint每日小贴士Web部件 项目描写叙述         此Web部件从指定SP自己定义列表或一个选定的 RSS源选择一个随机项目.并显示一张图片.标题和一个Tip.         适 ...

  8. C和C++的内存操作小贴士(一):const char*的内存释放问题

    C和C++的内存操作一直是困扰开发人员的老问题,基本概念相信老司机们都很清楚了,在这里就不做过多的描述了,只是把在实际开发中可能遇到的一些小问题的案例列举下,供大家参考.“C和C++的内存操作小贴士” ...

  9. Elasticsearch 学习之提升性能小贴士

    小贴士1:规划索引.分片 以及集群增长情况 ES使得创建大量索引和超大量分片非常地容易,但更重要的是理解每个索引和分片都是一笔开销.如果拥有太多的索引或分片,单单是管理负荷就会影响到ES集群的性能,潜 ...

随机推荐

  1. ArcGIS课程:表面数据转换成矢量数据

    虽然TIN (TIN) 和 terrain 数据收集被认为是载体表面.但它们实际上包括基于其他信息元素.并且该信息是在图象点.线或多边形原始格这可能是更实用的公式.在 ArcGIS 在,你可以很容易的 ...

  2. [转载]C#播放流媒体的几种方法

    做视频开发要学的东西真多,不知道如何入门,乱打乱撞,慢慢摸索吧! 首先搭建Windows Meida Server ,方法很简单,试试就会.在这里需要声明的是,这几种方法 都可以播放 本地视频.并且基 ...

  3. Hadoop -YARN 应用程序设计概述

    一概述        应用程序是用户编写的处理数据的统称,它从YARN中申请资源完毕自己的计算任务.YARN自身相应用程序类型没有不论什么限制,它能够是处理短类型任务的MapReduce作业,也能够是 ...

  4. win7兼容oracle

    操作系统:win7,数据库版本:Oracle 10.0. 问题:安装Oracle10.0时,安装程序意外退出,可按照如下操作解决win7与oracle兼容性问题. 1.打开“\Oracle 10G \ ...

  5. vs 文件头自动添加注释

    原文:vs 文件头自动添加注释 vs2010 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates ...

  6. sugarcrm关于邮件设置几个不好理解的地方

    陈沙克日志 把我的过程记录下来,以免以后忘了     2008-06-11 12:32 sugarcrm关于邮件设置几个不好理解的地方 最近看sugarcrm的使用,别的基本使用,没有什么问题,几天就 ...

  7. 【转】Android学习之AndroidManifest.xml清单之<uses-feature>

    无意之中看了几个小时的官方英文文档,关于<uses-feature>的介绍.有必要在这里记录一下,应该有很多人不知道<uses-feature>到底是做什么用的,因为我们平时根 ...

  8. DDD领域驱动设计

    DDD领域驱动设计实践篇之如何提取模型 需求说明: 省级用户可以登记国家指标 省级用户和市级用户可以登记指标分解 登记国家指标时,需要录入以下数据:指标批次.文号.面积,这里省略其他数据,下同 登记指 ...

  9. viewstate cookie和session原理回顾

    --个人理解会存在些错误仅供参考!!! ----浏览器保持会话状态原理 用户发送一次请求,服务器端会检索报文中是否存在sessionid不存在,就分配一个写到cookie当中,存在浏览器的缓存中,当再 ...

  10. NodeJS热部署工具 — supervisor

    NodeJS热部署工具 — supervisor 大家都在开发nodejs应用时遇到过这样的情况,修改nodejs应用中的程序文件后必须重启nodejs才能重新加载应用代码.这是因为nodejs加载过 ...