JVM调优工具Jprofiler查看远程进程分析第一种连接方式(四)
问题背景
上个篇章介绍了使用Jprofiler工具查看IDEA本地进程内存占用情况和GC情况,这个篇章介绍连接远程的进程,其中有两种连接方式,因为有一种我始终没有效果,所以换了一种,但两种我都分两个篇章写出来,大家选择自己合适的就行
注意事项:
- 远程连接需要保持Jprofiler的windows客户端和Jprofiler的linux服务端版本保持一致,这样连接才不会出问题
- 上传同版本的安装包可以自己下载
- 也可以去官网下载
JVM调优工具Jprofiler无介绍快速安装(附安装包)(一)
JVM主要需要分析的情况
1 Jprofiler的live memory中频繁创建的Java对象:可能是死循环、循环次数太多,递归未终止
2 Jprofiler的live memory中存在大对象:bytes[]应该边读边写,长时间不写导致bytes数组过大
3 Jprofiler的live memory中产生内存泄漏:内存泄漏的时候开启Recorded Objects分析
4 Jprofiler观察web容器的线程最大数:Tomcat的线程容量应该大于最大并发数
5 Jprofiler观察线程阻塞
6 Jprofiler观察线程死锁
Linux安装Jprofiler服务端
2 自己创建文件夹,使用xshell指令导入Jprofiler的linux安装包jprofiler_linux_11_1_4.tar.gz
mkdir jprofiler
rz -y
3 解压jprofiler_linux_11_1_4.tar.gz
tar -zxvf jprofiler_linux_11_1_4.tar.gz
pwd
/home/app/jprofilter/jprofiler11.1.4/bin
5 启动jprofiler,在这个bin文件夹下,执行jpenable
./jpenable
6 选择你需要分析的进程
7 Enter确定,选择模式,我选择的1为GUI模式,在线分析
8 输入一个未被占用的端口号
9 此时我需要分析的进程的日志打印了Jprofilter的启动日志
JProfiler> Protocol version 63
JProfiler> Java 8 detected.
JProfiler> 64-bit library
JProfiler> Listening on port: 8849.
JProfiler> Attach mode initialized
JProfiler> Enabling native methods instrumentation.
JProfiler> Can retransform classes.
JProfiler> Can retransform any class.
JProfiler> Retransforming 16 base class files.
JProfiler> Base classes instrumented.
JProfiler> Native library initialized
netstat -nltp | grep 8849
11 使用Windows的Jprofiler进行连接,新建session
12 设置端口号和IP,进行连接,但需要保证windows和服务器网络连接是相通的,关闭防火墙
13 选择推荐模式,全抽样
14 日志打印,每5ms进行一次抽样,这样不影响项目工程的性能
JProfiler> Using sampling (5 ms)
JProfiler> Time measurement: elapsed time
JProfiler> CPU profiling enabled
JProfiler> Initializing configuration.
JProfiler> Retransforming 129 class files.
JProfiler> Configuration updated.
总结
- 这个方式我是有效的,还有另一种方式,下个篇章介绍,但我没有效果
作为程序员第 135 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
Lyric: 然后微微笑
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110740.html