如何使用JDK自带的jvisualvm监控java程序【Java HotSpot(TM)】
2013-08-12 20:23
791 查看
这篇文章仅针对HostSpot虚拟机
第一步,写一个测试的policy文件,命名为test.policy,指定可以访问tools.jar,内容如下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
第二步,编写一个测试程序TestJVisualVM.java:
第三步,编译:
javac -encoding utf8 TestJVisualVM.java
第四步,运行:
java -Djava.security.policy=test.policy -Djava.net.preferIPv4Stack=true
-Dcom.sun.management.jmxremote.port=10990 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false TestJVisualVM
第五步,配置jvisualvm
先添加远程主机,再添加远程JMX端口,端口要和启动文件中-Dcom.sun.management.jmxremote.port=10990 指定的一致。
点击OK后双击,如果看到下图就说明配置正常了:
如果看到错误:
检查端口,如果显示0 :::10990
检查参数:-Djava.net.preferIPv4Stack=true
[ssergsw@JAZX5FVM-121-119 dubbo-antifraud]$ netstat -an | grep 10990
tcp 0 0 :::10990 :::* LISTEN
如果看到下面的监听,应该就能正常访问了:
[ssergsw@JAZX5FVM-121-119 dubbo-antifraud]$ netstat -an | grep 10990
tcp 0 0 0.0.0.0:10990 0.0.0.0:* LISTEN
第一步,写一个测试的policy文件,命名为test.policy,指定可以访问tools.jar,内容如下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
第二步,编写一个测试程序TestJVisualVM.java:
import java.util.HashMap; import java.util.Map; /** * * 测试jvisualvm的监控功能 * */ public class TestJVisualVM { public static void main(String[] args) throws InterruptedException { // 模拟占用资源的部分 for(int i = 0; i < 100; i++){ Map<String, String> map = new HashMap<String, String>(); map.put("" + i, "" + i); Thread t = new Thread(){ public void run(){ try { Thread.sleep(200 * 1000); } catch (InterruptedException e) { e.printStackTrace(); } } }; t.start(); // sleep 1s Thread.sleep(1000); } } }
第三步,编译:
javac -encoding utf8 TestJVisualVM.java
第四步,运行:
java -Djava.security.policy=test.policy -Djava.net.preferIPv4Stack=true
-Dcom.sun.management.jmxremote.port=10990 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false TestJVisualVM
第五步,配置jvisualvm
先添加远程主机,再添加远程JMX端口,端口要和启动文件中-Dcom.sun.management.jmxremote.port=10990 指定的一致。
点击OK后双击,如果看到下图就说明配置正常了:
如果看到错误:
检查端口,如果显示0 :::10990
检查参数:-Djava.net.preferIPv4Stack=true
[ssergsw@JAZX5FVM-121-119 dubbo-antifraud]$ netstat -an | grep 10990
tcp 0 0 :::10990 :::* LISTEN
如果看到下面的监听,应该就能正常访问了:
[ssergsw@JAZX5FVM-121-119 dubbo-antifraud]$ netstat -an | grep 10990
tcp 0 0 0.0.0.0:10990 0.0.0.0:* LISTEN
相关文章推荐
- 使用JDK自带jvisualvm监控tomcat和java程序
- 使用JDK自带jvisualvm监控tomcat和java程序
- IMF 如何使用JDK自带jvisualvm监控工具
- Spark的Straggler深入学习(1):如何在本地图形监控远程Spark的GC情况——使用java自带的jvisualvm
- 如何使用JVisualVM远程监控和优化Tomcat和Java程序的内存和CPU
- 使用JDK自带jvisualvm监控tomcat
- 通过jdk自带的jconsole.exe监控java程序的性能
- 使用JDK自带jvisualvm监控tomcat(收藏)
- 【转】使用JDK自带jvisualvm监控tomcat
- 使用JDK自带jvisualvm监控tomcat
- 使用JDK自带jvisualvm监控tomcat
- 使用JDK自带的jmap和jhat监控处于运行状态的Java进程
- 使用JDK自带jvisualvm监控tomcat
- 使用JDK自带jvisualvm监控tomcat
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop
- 使用JDK自带jvisualvm监控tomcat
- 使用JDK自带jvisualvm监控tomcat
- 使用JDK自带的VisualVM进行Java程序的性能分析
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行
- 我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时