1.下载:
https://visualvm.github.io/download.html
2.解压
3.运行
/Desktop/visulaVM/visualvm_142/bin$ ./visualvm --jdkhome /usr/java/jdk1.8.0_172
使用:例如查看GC
使用插件:tools-->plugins-->available Plugins-->Visual GC install
然后,点击一个应用或线程:查看
用visualvm观察远程服务器java项目的两种办法:
原文:https://www.cnblogs.com/zuxiaoyuan/p/10078588.html
首先,需要连接远程服务器:
右击remote,选择add remote host
填写远程服务器地址:
准备工作已经做好,下面将visual vm的两种连接远程java的方法。
法一:jstatd
用jstatd需要在远程服务器上启动一下jstatd,步骤如下:
【远程服务器上】
1.cd ${JAVA_HOME}/bin
2.sudo vi jstatd.all.policy
其中jstatd.all.policy 文件内容如下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
3.jstatd -J-Djava.security.policy=jstatd.all.policy &
此时jstatd启动成功,在本地的visualvm可以看到如图,可以进行自行查看。
法二:用jmx
【远程服务器】上
1.
cd ${JAVA_HOME}/
cd jre/
cd lib/
cd management/
cp jmxremote.password.template jmxremote.password
sudo vi jmxremote.password
文件中将monitorRole QED和 controlRole R&D前的注释去掉,然后保存
2.更改java参数
我用的是supervisor进行java进程管理。
cd /etc/supervisord.d/
在java启动项里加上
-Djava.rmi.server.hostname=【远程服务器的ip】 -Dcom.sun.management.jmxremote.port=18999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
3.重启supervisor
sudo supervisorctl reload
在本地的visual vm上添加jmx
填上你的远程服务器的ip以及刚刚在java参数里配的端口18999:
点击ok,可以看到添加成功:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?