关于增强visualvm的一些想法

visualvm是jdk里自带的一款比较实用的可视化profiling工具。

想法1:远程连接通过ssh隧道穿透隔离网络访问生产环境

java有处理ssh协议的第三方包,ssh隧道只要对端安装有opensshserver都能搞定。
所以,只需要开发一个visualvm的新远程连接插件,即可穿透隔离网络在visualvm的可视化界面下,profling生产环境主机。

当然,安全性和权限需要同时考虑。

想法2:使远程和本地提供的特性一致

visualvm可以用来分析cup,thread,heap,采样cpu和内存,heapdump等。
但绝大多数功能仅限于本地。
虽然visualvm也提供了远程访问的功能,但其功能大幅缩水。官方提供的特性列表如下:

Feature JDK1.4.2
local/remote
JDK5
local/remote
JDK6
local
JDK6
remote
Overview pTWsS.png pTWsS.png pTWsS.png pTWsS.png
SystemProperties(inOverview) pTWsS.png
Monitor pTWsS.png pTWsS.png pTWsS.png pTWsS.png
Threads pTWsS.png pTWsS.png pTWsS.png
Profiler pTWsS.png
ThreadDump pTWsS.png
HeapDump pTWsS.png
EnableHeapDumponOOME pTWsS.png
MBeanBrowser(plugin) pTWsS.png pTWsS.png pTWsS.png
WrapperforJConsoleplugins(plugin) pTWsS.png pTWsS.png pTWsS.png

幸好visualvm是开源的,为了实现想法2的功能,我们只需要改进一下visualvm的实现,引入一个特殊的远程agent(替换jstatd)。
该agent用于访问本机java进程。这样,visualvm的远程访问镜像到本地,同时也具备本地的所有功能。

如果想法1和想法2都能实现,我觉得visualvm的使用范围会更广。
后面我计划研究一下!

你可能感兴趣的:(java,开源,增强visualvm)