java 监控 m_Java性能监控-Jprofiler & Mat

Java性能监控有很多工具,例如自带的Jvisualvm、商业软件jprofiler ,以及和其类似的YourKit Java Profiler;本次主要记录jprofiler的使用。

Jvisualvm

Jvisualvm 是java自带的性能分析工具,在JDK6以后已经作为Oracle JDK的一部分,放在bin目录下,可以直接打开使用。

Jvisualvm 可以分析CPU、内存、线程、生成jdk快照等。

Jvisualvm 是基于jdk分析接口,提供的可视化操作界面。

支持本地监控和远程连接监控。

打开方式

选择方法调用监控策略

jprofiler可以跟踪方法的调用树和CPU执行时间,有大体分为两种策略:

instrumentation 为全部采集,使用字节码重写技术对代码进行跟踪 。

Sampling 为对堆栈信息进行抽样分析(5ms一次),如果代码执行很快,有些可能采集不到。

官方策略说明

远程服务器监控

一般情况下我们都在远程服务器上进行性能测试,所以对服务器的监控是很重要的部分。

下面记录一下jprofiler监控远程spring boot的过程。

服务器jprofiler安装

#下载

wget https://download-gcdn.ej-technologies.com/jprofiler/jprofiler_linux_11_1_4.sh

#授权

chomd +x jprofiler_linux_11_1_4.sh

#安装、按照提示操作即可

./jprofiler_linux_11_1_4.sh

#运行一个spring boot程序

nohup java -jar microservice-web-1.0-SNAPSHOT.jar &

#进入安装目录

cd /opt/jprofiler11/bin/

#运行jprofiler,并根据提示输入端口

./jpenable

动态内存监控

动态内存主要监控实时内存占用,可以用来查看各个对象的实例数和所耗内存;

除此之外还可以监控每个调用链过程中对内存的消耗。

堆行者-Heap walker

获取瞬时堆信息(注意会引起STW操作),并且进行相关数据分析。

线程监控

可以查看各个线程的运行状态、时长

jdbc分析

用来查看数据库连接数、db热点操作、sql执行时间等

外部http接口调用

监控服务器调用外部的http接口情况。

服务器文件

监控服务器内部文件流使用情况。

性能影响

测试对100个对象进行排序操作

200个并发在1s内执行;开启无限循环压测至10w个样本

jprofiler开启cpu时间记录

不使用jprofiler压测结果

cpu使用率

MAT

Eclipse提供了Memory Analyzer Tools用来分析堆信息,下载界面。

mat支持在远程进行分析并生成zip文件,下载后打开即可通过html界面进行查看分析结果。

#下载

wget http://eclipse.stu.edu.tw/mat/1.10.0/rcp/MemoryAnalyzer-1.10.0.20200225-linux.gtk.x86.zip

#解压

unzip MemoryAnalyzer-1.9.1.20190826-linux.gtk.x86_64.zip

# 修改内存大小:-Xmx4096m (内存要大于heap文件,否则可能无法加载导致无法分析:)

vim MemoryAnalyzer.ini

#运行并生成结果

./ParseHeapDump.sh ../heap.bin org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components

Jprofiler

目前还未找到jprofiler在远程机器上解析的操作步骤,目前先写个本地的,后续有再补充。

jprofiler首先需要将dump的堆快照后缀更改为.hprof,然后才能打开。

jprofiler打开dump文件较快,且功能也比较丰富、图形化界面强大。

jprofiler同时提供了更多的检测能力,比如分析重复对象以及空数组等(下图3)。

888ca9487340d744cf9c44051008a7cf.png

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92722 人正在系统学习中 相关资源:连续梁的弯矩计算软件V1.0绿色版_连续梁-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月14日
下一篇 2021年1月14日

相关推荐