visualvm是jdk里自带的一款比较实用的可视化profiling工具。
java有处理ssh协议的第三方包,ssh隧道只要对端安装有openssh server都能搞定。 所以,只需要开发一个visualvm的新远程连接插件,即可穿透隔离网络在visualvm的可视化界面下,profling生产环境主机。
当然,安全性和权限需要同时考虑。
visualvm可以用来分析 cup, thread, heap, 采样cpu和内存,heap dump等。 但绝大多数功能仅限于本地。 虽然visualvm也提供了远程访问的功能,但其功能大幅缩水。官方提供的特性列表如下:
FeatureJDK 1.4.2 local/remoteJDK 5 local/remoteJDK 6 localJDK 6 remoteOverviewSystem Properties (in Overview) MonitorThreads Profiler Thread Dump Heap Dump Enable Heap Dump on OOME MBean Browser (plugin) Wrapper for JConsole plugins (plugin)幸好visualvm是开源的,为了实现想法2的功能,我们只需要改进一下visualvm的实现,引入一个特殊的远程agent(替换jstatd)。 该agent用于访问本机java进程。这样,visualvm的远程访问镜像到本地,同时也具备本地的所有功能。
如果想法1和想法2都能实现,我觉得visualvm的使用范围会更广。
本文来源于"阿里中间件团队播客",原文发表时间" 2011-03-17 "
相关资源:敏捷开发V1.0.pptx