VisualVM是一个集成多个JDK命令行工具的可视化工具。可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分 析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制Java应用程序横跨整个网络的情况。Java应用程序使用人员可以利用它来创建包含所有 必要信息的Bug 报告。

VisualVM 提供在 Java 虚拟机 (Java Virutal Machine, JVM) 上运行的 Java 应用程序的详细信息。在 VisualVM 的图形用户界面中,可以方便、快捷地查看多个 Java 应用程序的相关信息。


下载工具

官方下载地址:http://visualvm.java.net/download.html


安装插件

通过安装 VisualVM 更新中心提供的插件,可以向 VisualVM 添加功能。

  1. 从主菜单中选择“工具”>“插件”。
  2. 在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装”。
  3. 逐步完成插件安装程序。


VisualVM监视远程JVM

通过jstatd启动RMI服务

配置java安全访问,将如下的代码存为文件 jstatd.all.policy,放到JAVA_HOME/bin中,其内容如下:

grant codebase "file:${java.home}/../lib/tools.jar"
{
permission java.security.AllPermission;
};

想要调用这个监控策略,请拷贝一下脚本并执行:

jstatd -J-Djava.security.policy=jstatd.all.policy

由于 jstatd 需要保持一直运行,所以建议使用如下命令执行 jstatd 程序,命令如下(linux系统下有效,windows没确认过):

add by 2013年12月3日 验证windows环境也能行!

jstatd -J-Djava.security.policy=jstatd.all.policy &

如果需要RMI 日志功能的话,还可以在启动参数中加入 -J-Djava.rmi.server.logCalls=true:

jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=true &

通过JMX管理远程应用

配置tomcat启动参数$JAVA_OPTS,指定hostname 一般情况需要重新指定hostname,否则连接不成功

-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx

指定hostname 指定端口默认:1099

-Dcom.sun.management.jmxremote.port=

禁止ssl连接

-Dcom.sun.management.jmxremote.ssl=false

开启用户认证

-Dcom.sun.management.jmxremote.authenticate=true

认证用户名密码

-Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/jre/lib/management/jmxremote.password

访问模式

-Dcom.sun.management.jmxremote.access.file=$JAVA_HOME/jre/lib/management/jmxremote.access

注意:jmxremote.password和jmxremote.access文件只允许启动用户名对该文件拥有读写权限

我们所要启动的服务将用weblgoic账户启用,权限设置信息如下:

修改jmxremote.password文件内容,设置信息如下:

monitorRole  QED
controlRole R&D

其中monitorRole为账户,QED为密码。

好叻,这嘛嘛再也不用担心我不会分析Java内存信息了。

VisulaVM 性能:分析 JVM 性能的免费工具的更多相关文章

  1. 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)

    技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 ...

  2. mysql(4):性能分析和性能优化

    性能分析 慢查询日志分析 ①查询慢查询日志的状态 show global variables like '%slow_query_log%'; ②开启慢查询日志(当mysql重启时会重置) set g ...

  3. MySQL性能分析、及调优工具使用详解

    本文汇总了MySQL DBA日常工作中用到的些工具,方便初学者,也便于自己查阅. 先介绍下基础设施(CPU.IO.网络等)检查的工具: vmstat.sar(sysstat工具包).mpstat.op ...

  4. 性能分析 | JVM发生内存溢出的8种原因及解决办法

    推荐阅读:史上最详细JVM与性能优化知识点综合整理 1.Java 堆空间 2.GC 开销超过限制 3.请求的数组大小超过虚拟机限制 4.Perm gen 空间 5.Metaspace 6.无法新建本机 ...

  5. 性能优化 | JVM性能调优篇——来自阿里P7的经验总结

    VM 调优概述: 性能定义: 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标. 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收 ...

  6. CPU性能分析工具原理

    转载请保留以下声明 作者:赵宗晟 出处:https://www.cnblogs.com/zhao-zongsheng/p/13067733.html 很多软件都要做性能分析和性能优化.很多语言都会有他 ...

  7. Java application 性能分析分享

    性能分析的主要方式 监视:监视是一种用来查看应用程序运行时行为的一般方法.通常会有多个视图(View)分别实时地显示 CPU 使用情况.内存使用情况.线程状态以及其他一些有用的信息,以便用户能很快地发 ...

  8. JVM性能优化系列-(1) Java内存区域

    1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.主要包括:程序计数器.虚拟机栈.本地方法栈.Java堆.方法区(运 ...

  9. JVM性能优化系列-(2) 垃圾收集器与内存分配策略

    2. 垃圾收集器与内存分配策略 垃圾收集(Garbage Collection, GC)是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如 ...

随机推荐

  1. 「SHOI2015」自动刷题机

    /* 有理有据的二分答案 因为在过程中最多减到零 所以n越小显然就能刷更多的题 无解时就是无论如何也无法得到k , 这个特判一下即可 */ #include<cstdio> #includ ...

  2. spring boot 静态变量注入配置文件

    spring 静态变量注入 spring 中不支持直接进行静态变量值的注入,我们看一下代码: @Component(value = "KafkaConfig") @Configur ...

  3. laravel5.4安装的报错

    laravel5.4安装的报错 [InvalidArgumentException] Could not find package laravle/installer at any version f ...

  4. centos7修改ssh默认登陆端口号

    参考网站; https://blog.csdn.net/ausboyue/article/details/53691953 第一步:修改SSH配置文件(注意是sshd_config而不是ssh_con ...

  5. 使用.htaccess文件

    禁止对无索引文件的目录进行文件列表展示 默认情况下,当我们访问网站的某个无索引文件(如index.html,index.htm或 index.php)目录时,服务器会显示该目录的文件和子目录列表,这是 ...

  6. python之函数的作用域

    name = "wangyue" def test1(): name= "in the test1" def bar(): name = "zhaoz ...

  7. Python library not found: libpython2.7mu.so.1.0

    在使用pyinstaller生成python可执行文件的时候,包错误,提示有几个依赖的库找不到:Python library not found: libpython2.7mu.so.1.0 参考st ...

  8. Apache Hive 执行HQL语句报错 ( 10G )

    # 故障描述: hive > , ) as uuid, count(distinct(request_body["uuid"])) as count from log_bft ...

  9. ingress 密码验证

    traefik ingress 上面的方式需要引入haprox或者nginx,多引入了一个代理转发层,其实ingress本身就提供了basic auth的支持,在ingress规则中添加额外的认证an ...

  10. 14.7.1&14.7.2

    ArrayList <Object> list = new ArrayList<>(); //实例化ArrayList int i; int j; for(i = 1; i & ...