使用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远程监控Java程序的更多相关文章

  1. 使用jvisualvm的jstatd方式远程监控Java程序

    使用Java自带的jvisualvm调试Java程序,可以查看CPU.内存.类及线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows.服务端是Linux,并且是最小安装的Linu ...

  2. 使用jvisualvm来远程观察Java程序及jvisualvm插件[转]

    jvisualvm是JDK自带的监控JVM运行状况的工具,利用jvisualvm可以查看JVM的运行.GC情况:线程的运行情况:内存中类及实例的情况等. 使用jvisualvm来远程观察Java程序, ...

  3. jvisualvm远程监控Tomcat

    网上已经有很多这方面的资料,但有些很杂乱,这里做了整理总结. 一.Java VisualVM 概述 对于使用命令行远程监控jvm 太麻烦 . 在jdk1.6 中 Oracle 提供了一个新的可视化的. ...

  4. JVisualVM远程监控

    本文主要转自:http://blog.iamzsx.me/show.html?id=394002 http://www.wl566.com/wz/64022.html 1. 通过JMX方式监控远程li ...

  5. 利用VisualVm和JMX远程监控Java进程

    自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...

  6. 使用jvisualvm远程监控tomcat(阿里云ECS)

    写在前面:  使用jvisualvm远程监控tomcat(阿里云ECS),连接是报错:service:jmx:rmi:////jndi/rmi:IP:端口//  连接到 IP:端口,网上找了很多资料, ...

  7. eclipse远程debug Java程序

    使用Eclipse JPDA远程调试Java程序 本文将介绍使用Eclipse JPDA,在Eclipse的开发环境下对远程运行的Java程序进行调试操作. 请按以下步骤进行(本人已经在Eclipse ...

  8. 【jvisualvm远程监控配置】

    第一步:首先通过hostname -i  和ifconfig命令,查看一下IP地址是否一致 如果不一致,修改hosts的IP地址:vi /etc/hosts    把ip地址和ifconfig的地址修 ...

  9. zabbix 监控java程序

    http://www.tuicool.com/articles/IRnM7f http://transcoder.baidu.com/from=1012852q/bd_page_type=1/ssid ...

随机推荐

  1. exjs上传图片异常:com.jspsmart.upload.SmartUploadException: File can't be saved (1120).

    错误: 文件名格式不对:未命??.jpg SmartUpload mySmartUpload = new SmartUpload(); com.jspsmart.upload.File myFile ...

  2. Servlet之文件的上传与下载

    文件上传和文件下载是我们学JAVA Web时必不可少的模块.今天我们探讨下这个问题 文件上传: request.setCharacterEncoding("utf-8");//设置 ...

  3. html+css手记

    ----------------------html定义和基本结构---------------------- HTML是 HyperText Mark-up Language 的首字母简写,意思是超 ...

  4. VS2015企业版和专业版永久密匙

    专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

  5. TFLearn构建神经网络

    TFLearn构建神经网络 Building the network TFLearn lets you build the network by defining the layers. Input ...

  6. PropertiesUtil demo

    package com.spl.save.wmos.base.util; import java.io.File; import java.io.FileInputStream; import jav ...

  7. java对象 深度克隆(不实现Cloneable接口)和浅度克隆

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt128 为什么需要克隆: 在实际编程过程中,我们常常要遇到这种情况:有一个对象 ...

  8. tkinter第二章(添加图片,背景图片)

    #插入文件图片import tkinter as tk root = tk.Tk() #创建一个标签类, [justify]:对齐方式textLabel = tk.Label(root,text=&q ...

  9. 软工+C(2017第5期) 工具和结构化

    // 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 工具/轮子 软件工程/计算机相关专业的一个特点是会使用到众多的工具,工具的使用是从程序猿进化到程序员的一个关键要素.软件工程师 ...

  10. 1st_homework_SE--四则运算题目生成器

    0x00 Code 查询源代码及README请点此 0x01 需求分析 实现一个自动生成小学四则运算题目的命令行程序. 0x02 功能设计 主要功能为: 接受用户输入以便知道要出多少道题目python ...