第六篇、linux中安装和配置Jprofiler

背景

最近因为线上项目的定时任务用的是同一个线程,两个定时任务 一个在3点跑,一个在4点跑,结果3点的那个异常之后,4点的就没跑(已经找到原因:因为配置定时器默认走的一个线程,当3点哪个异常之后 4点的就不会跑了,解决方法可以配置线程池,让每个定时都重新建新的线程,详情可以百度),所以就想着找一个能监控服务器线程、内存、cpu的手段,百度了半天 ,网上有的是用jdk的原生工具,有的是在linux命令,但是我发现,都不够直观。

然后找到一个之前我再本地测试用的工具Jprofiler,因为之前是在本地跑的,没有在linux服务器搞过,所以在网上找了半天教程,好多教程要么没说明白,要么照着弄了之后,发现还不行,然后我就在各个版本的说法中,结合好几个教程上的说法,终于成功了,所以决定写一篇博客整合一下,然后分享给大家,亲测可用哦

Jprofiler介绍

在此之前给大家先介绍下Jprofiler
JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开发部署工具)。

  • 使用方便
  • 界面操作友好
  • 对被分析的应用影响小
  • CPU,Thread,Memory分析功能尤其强大
  • 支持对jdbc,noSql, jsp, servlet, socket等进行分析
  • 支持多种模式(离线,在线)的分析
  • 跨平台
具体安装

关于这个软件的具体使用我个人还在摸索中(等我自己用的熟练了,可以写一个具体的使用说明),现在给大家说一下如何在你本地安装这个软件监控线上的项目:

  1. 登录官网下载JProfiler的客户端[https://www.ej-technologies.com/download/jprofiler/files]
    由于我自己是mac系统,所以我下载的是mac版本的
    在这里插入图片描述

  2. 将下载下来的软件安装到你的本地电脑上(安装步骤就不再说明)

  3. 根据自己的服务器系统类型,给服务器也下载一个[没错,不仅要在你电脑上装,还需要在服务器装],由于我服务器的系统是linux的,所以我装的是linux版本的
    注意:linux版本的Jprofiler是不需要序列号,只有你本地装的软件是需要序列号的,这里还是不建议大家使用破解版的

  4. 将下载到的软件安装到linux服务器上
    我的安装目录是在/opt/jp 下面
    在这里插入图片描述

  5. 安装完成只有,选择你要监控的tomcat,然后修改你tomcat的启动文件bin/catalina.sh 里面加上这一段代码

    export CATALINA_OPTS="-agentpath:/opt/jp/jprofiler9/bin/linux-x64/libjprofilerti.so=port=10001,nowait" 
    

    在这里插入图片描述
    10001是监听端口 你电脑Jprofiler想监听线上tomcat,就靠这个端口
    /opt/jp/jprofiler9/bin/linux-x64/libjprofilerti.so 这个是你这个软件在你服务器的路径,我的是装在了/opt/jp 里面

  6. 然后重启tomcat,看见日志打印有这个,就代表成功了。
    在这里插入图片描述

  7. 打开你本地的Jprofiler,然后新建一个连接
    在这里插入图片描述

  8. 选择远程连接服务器,并且选择你的服务器的系统版本
    在这里插入图片描述

  9. 选择服务器上的JVM供应商和版本号
    在这里插入图片描述

  10. 选择模式,选择中间的
    在这里插入图片描述
    关于他们三个菜单的解释

    • Wait for JProfiler GUI模式
      JVM将等待JProfiler Agent接收到JProfiler GUI发送的配置信息后再进行启动( 即Lauch Type连接模式 ,启动一个新的JVM实例)

    • Prepare for profling模式
      立即启动JVM,稍后再与JProfiler GUI进行连接并向JProfiler Agent发送配置信息( 数据的采集方式、过滤器、触发器等信息 )
      *若使用此模式则需要让JVM在启动时自动加载JProfiler Agent,因此需要在startup.bat/startup.sh文件中添加命令

      startup.bat:set CATALINA_OPTS=-agentpath:{JProfiler安装目录}\bin\windows-x64\jprofilerti.dll=port=8849,nowait %CATALINA_OPTS%
      
      startup.sh:CATALINA_OPTS=-agentpath:/{JProfiler安装目录}/bin/linux-x64/libjprofilerti.so=port=8849,nowait $CATALINA_OPTS
      
      export CATALINA_OPTS
      
    • Profile Offine模式

      离线分析,JProfiler GUI无法与JProfiler Agent进行连接,因此需要将数据的采集方式、过滤器、触发器等信息打包成config.xml配置文件,在启动该JVM实例时加载JProfiler Agent以及配置文件,使用此模式需要配合triggers触发器使用,当发生指定的事件后触发指定的操作.

      若使用此模式则需要让JVM在启动时自动加载JProfiler Agent和context.xml配置文件,因此需要在startup.bat/startup.sh文件中添加命令

      startup.bat:
                set CATALINA_OPTS=-agentpath:{JProfiler安装目录}\bin\windows-x64\jprofilerti.dll=port=8849,nowait,config=C:\Users\{用户名}\.jprofiler9\config.xml %CATALINA_OPTS%
      startup.sh:
                CATALINA_OPTS=-agentpath:/{JProfiler安装目录}/bin/linux-x64/libjprofilerti.so=port=8849,config={预定义目录}\config.xml $CATALINA_OPTS
      export CATALINA_OPTS
      	```
      
  11. 将服务器ip填上
    在这里插入图片描述

  12. 将你jprofiler在服务器上安装路劲填上
    在这里插入图片描述

  13. 填写监听端口 端口在第5步的时候在tomcat启动文件那儿配的,和那儿保持一致就行
    在这里插入图片描述

  14. 最后选择稍后启动,然后点击完成就行
    在这里插入图片描述

  15. 然后点击start Center,在弹出来的页面就可以看到你刚才配置的连接了,然后点击start
    在这里插入图片描述

  16. 点击之后,会弹出一个页面,让你选择模式,然后你根据自己需要了解的数据需求来选择

    • Instrumentation重构模式
      JProfiler将对需要分析的class字节码文件中写入自己的bytecode,对于正在运行的JVM实例选择此模式将会重新加载字节码文件到JVM的运行时数据区域结构中.
      这是JProfiler全功能模式,在此设置中,调用堆栈信息是准确的,但是CPU开销可能很高( 取决于Filter的控制 ),若要分析的类较多,则对应用的性能产生影响,因此使用此模式一般配合Filter使用,只对特定的类或包进行分析.
    • Sampling抽样模式
      此模式对CPU的开销非常低,但不支持某些功能( 方法的执行次数、执行时间等 ), 这种模式在连接正在运行的JVM实例时更为安全.
      在这里插入图片描述
  17. 最后弹出的页面直接确定就行
    在这里插入图片描述

可能出现的问题
  1. 服务器上按照步骤都配置了,本地还是连接不上
    解决:有可能是监听端口防火墙没开,将端口打开

    iptables -I INPUT -p tcp --dport 10001 -j ACCEPT #开启10001端口

总结

最后大功告成,这个软件网上教程很多,我照着好几个教程配置都不行,最后有好几次想要放弃,最后还是坚持下来,希望大家在技术的道路上不要碰到困难就和我一样想要放弃。 最后谢谢大家抽时间看我的博客 ,有什么问题可以留言哦
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值