JProfiler性能分析工具

1.楔子

jprofiler9.2是一款非常好用且功能强大的跨平台java必能分析工具,使用它可以有效地对JAVA程序的CPU、内存使用情况进行监控行装,同时还可以对JAVA程序的性能瓶颈进行分析。

主要功能

  • 本地会话实时分析模式
  • 远程会话实时分析模式
  • 离线分析模式
  • 快照比较
  • 查看HPROF快照
  • JDBC、JPA和NOSQL的数据库分析
  • 极好的支持JAVA企业版(JDBC,JPA/Hibernate,JMS和JNDI调用)
  • 更高级别的分析数据(JDBC,JPA/Hibernate,JSP/Servlets,JMS,Web服务和JNDI,RMI调用,文件,套接字和进程的高级信息)
  • 内存泄漏分析
  • 强大的CPU分析器

2.安装

建议大家安装JProfiler9.2.1版本,网上的注册码大多都可以用,也可以实现远端监控。在高的网上的版本注册码基本不能使用,会报如下的错误:
JProfiler> ERROR: Invalid license key. Aborting
安装教程:jprofiler(Java性能分析工具) 下载安装

3. 本地使用

最好在IDE中使用,方便快捷。也可直接通过GUI分析本地JVM进程。

  • IntelliJ IDEA集成JProfiler,入门教程
  • JProfiler性能分析工具详解

4.监控远程linux服务器的JVM进程

下面两篇文章简绍了使用jprofiler怎样监控远程linux的tomcat进程。

  • jProfiler远程连接Linux监控tomcat运行状态1
  • jProfiler远程连接Linux监控tomcat运行状态2

那么如何使用jprofiler监控其它的Java进程?下面将详细介绍。

第一步:Linux上安装jprofiler

下载软件linux服务端jprofiler软件,要与Windows Jprofiler的版本一致(jprofiler_linux_9_2_1.tar.gz):官网地址:http://www.ej-technologies.com/download/jprofiler/files ,下载好后把tar包上传的linux服务器,解压即可(tar -zxvf jprofiler_linux_9_2_1.tar.gz)。

第二步:远程主机上运行了的/bin/jpenable代理,开启一个特定的剖析端口

进入jprofiler的bin目录,然后执行./jpenable启动代理(JVMTI分析代理程序)。然后选择要监控的jar包,选择监控的端口,之后出现You can now use the JProfiler...代表运行成功,之后就可以使用Windows Jprofiler分析远程JVM了。
JProfiler性能分析工具_第1张图片

第三步:JProfiler启动远程会话分析,监听一个特定的剖析端口

配置远程会话分析的IP和Port即可启动远程回话分析。

JProfiler性能分析工具_第2张图片
分析结果如下所示:
JProfiler性能分析工具_第3张图片
JProfiler性能分析工具_第4张图片

5.原理

1.JVMTI
JDK 本身定义了目标明确并功能完善的JNI( Java Native Interface )与虚拟机直接进行交互,这些 API 能很方便的进行扩展,从而满足开发者各式的需求.
JVMTI( JVM Tool Interface),是JAVA虚拟机提供的本地接口,它是实现调度器以及其它Java运行测试与分析工具的基础.

  • 并不一定在所有的JDK提供商都有实现,但在主流的Oracle JDK、Open JDK上都有其实现.
  • 在开发的过程中一般是使用Agent的方式来使用JVMTI,通过调用JVMTI的函数,从JVM中得到当前的运行信息.

2.JProfiler内部模型
JProfiler性能分析工具_第5张图片
3.JProfiler数据采集的原理
JProfiler性能分析工具_第6张图片

1.用户在JProfiler GUI中下达监控命令( 对应用户的一个点击 ).
2.JProfiler GUI通过自身Socket的8849端口向位于JVM的JProfiler Agent发送监控指令.
3.JProfiler Agent收到指令后向JVMTI注册事件或执行相关的命令.
4.JVMTI根据事件和命令的类型返回相对应的数据( 线程状态、对象实例、CPU负荷、GC状态信息等)
5.JProfiler Agent从JVMTI中得到相应数据后将对其进行计算,最终通过Socket传输给JProfiler GUI中进行展示.

6.参考文献

  • JProfiler性能分析工具详解
  • jprofiler_监控远程linux服务器的JVM进程(转 非常棒)

你可能感兴趣的:(工具)