使用jvisualvm的jstatd方式远程监控Java程序
使用Java自带的jvisualvm调试Java程序,可以查看CPU、内存、类及线程等信息,还可以进行Dump,无疑是一个利器
由于客户端是Windows、服务端是Linux,并且是最小安装的Linux,没有图形界面,因此需要进行远程调试
一、客户端:Windows
打开%JAVA_HOME%/bin/jvisualvm.exe,在“远程”节点,右键,“添加远程主机”,如下所示:

输入主机IP地址,修改显示名,点击确定,如下所示:

二、服务端:Linux
在$JAVA_HOME/bin/下新建策略文件:
[teld@T-SHA1-FLK- bin]$ touch jstatd.all.policy
[teld@T-SHA1-FLK- bin]$ vi jstatd.all.policy
输入如下内容:
grant codebase "file:/usr/java/default/lib/tools.jar" {
permission java.security.AllPermission;
};
启动jstatd:
[teld@T-SHA1-FLK- bin]$./jstatd -J-Djava.security.policy=./jstatd.all.policy
这时在客户端即可看到服务端上运行的所有Java程序了,如下所示:

双击某一个Java程序节点,可以看具体的CPU、内存、类及线程信息
三、遇到的坑
3.1 插件安装
jvisualvm可以安装插件,但是使用时,发现默认的插件提供网站已经不能用了:

通过浏览器直接访问,发现网站已经不能用了:
http://www.oracle.com/splash/java.net/maintenance/index.html

新地址已经迁移到github:
https://visualvm.github.io/pluginscenters.html
根据版本下载对应的插件到本地,然后通过本地安装即可,以安装Visual GC为例,如下所示:


安装完后,可以发现多了一个Visual GC的Tab页:

可以很直观的观察JVM里的内存分配
3.2 CPU查看、抓取Dump
使用这种远程的方式,没法查看CPU、没法抓取Dump,因此局限性很大,还是应该使用本地的方式比较稳妥
使用jvisualvm的jstatd方式远程监控Java程序的更多相关文章
- Jstatd方式远程监控Linux下 JVM运行情况
前言 最近一个项目部署在服务器上运行时出现了问题,经过排查发现是java内存溢出的问题,所以为了实时监控服务器java内存的情况,需要远程查看服务器上JVM内存的一些情况.另外服务器系统是CentOS ...
- 使用jvisualvm远程监控Java程序
使用Java自带的jvisualvm调试Java程序,可以查看CPU.内存.线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows.服务端是Linux,并且是最小安装的Linux, ...
- VisualVM通过jstatd方式远程监控远程主机
配置好权限文件 [root@test bin]# cd $JAVA_HOME/bin [root@test bin]# vim jstatd.all.policy grant codebase &qu ...
- 使用jvisualvm来远程观察Java程序及jvisualvm插件[转]
jvisualvm是JDK自带的监控JVM运行状况的工具,利用jvisualvm可以查看JVM的运行.GC情况:线程的运行情况:内存中类及实例的情况等. 使用jvisualvm来远程观察Java程序, ...
- 利用VisualVm和JMX远程监控Java进程
自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...
- eclipse远程debug Java程序
使用Eclipse JPDA远程调试Java程序 本文将介绍使用Eclipse JPDA,在Eclipse的开发环境下对远程运行的Java程序进行调试操作. 请按以下步骤进行(本人已经在Eclipse ...
- VisualVM远程监控Java
1.服务器启动jstatd服务设置: jstatd将使用RMISecurityPolicy,并且需要指定安全策略文件. 安全策略文件必须符合安全策略语法,通过命令 jstatd -J-Djava.se ...
- zabbix 监控java程序
http://www.tuicool.com/articles/IRnM7f http://transcoder.baidu.com/from=1012852q/bd_page_type=1/ssid ...
- 使用jvisualvm.exe 的Btrace插件监控应用程序
之前提到使用命令行的方式执行btrace监控,其实jdk提供更好的方式监控应用程序. 我们可以使用jvisualvm.exe加插件的方式监控,这样更加方便. 1.在jvisualvm.exe安装btr ...
随机推荐
- Vim实用技巧系列 - 代码注释
在写代码时候,有时候需要临时注释掉一部分代码,之后还要取消这些注释.真麻烦.那么,用Vim怎么做这件事呢? 第一种方法,块模式. 再次声明,本系列全部以windows下 ...
- Sublime Text 3快捷键的使用技巧(python)
Sublime Text 3非常实用,但是想要用好,一些快捷键不可或缺,所以转了这个快捷键汇总. 先拉出来说几个切身体会最常用, Ctrl+Z 撤销. Ctrl+Y 恢复撤销 Alt+Shift+2 ...
- window启动程控制
1.启动服务管理(RPC) 2.开启远程选项 3.开启防火墙允许
- 使用exe4j将java项目打成exe执行程序
最近用Java写了一个小工具,想将它达成exe执行文件,到时候直接放某个目录下,一执行就能跑啦. 用到的工具: 1.写好的项目:可以是java项目,也可以是java web项目 2.能够打jar的工具 ...
- notepad++上搭建gtk+2.0/3.x开发环境
前言 老师布置了一道题需要用到图形界面,于是开始找图形库.最后选择了gtk+图形库,然后折腾了大概一天. 这里记录自己新学到的知识,同时也给后来者一些便利. 准备 下载以下内容 notepad++(由 ...
- OOAD之创建型模式之工厂模式
首先我们为什么要学习设计模式呢? 1)模式从经验中总结出来的,经过证实的方案,模式只有在实际系统中经过多次验证之后才能成为模式. 2) 提高系统的可维护性, 通过使用设计模式,在系统面临升级和维护时, ...
- Java Graphics 图形绘制
Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形.画字符串等. 画线段 drawLine pub ...
- MVC中使用Castle.Windsor
我在MVC中使用Castle.Windsor是这样用的. 首先在UI层安装Install Castle.Windsor 在App_Start中增加一个类WindsorActivator,用于注册和销毁 ...
- ruby楼层排序问题
求教楼层排序问题 要求正确楼层排序为: B2,B1,1F,2F,3F...10F,11F 现有这13个无序的楼层 怎么排列成上面的格式? 求教 luikore 1楼 , 19小时前 1人喜欢 sort ...
- golang基础--控制语句
go基础之控制语句 补充知识 指针 与其他语言不同,在Go中不支持指针运算即->运算符,而直接采用.选择符来操作指针目标对象的成员. 操作符&取变量的地址,使用*通过指针间间接访问目标对 ...