登录 |  注册
首页 >  服务器/安全 >  Tomcat容器 从入门到精通学习笔记 >  JVM 调优诊断工具JVisualVM

JVM 调优诊断工具JVisualVM

JVM监控工具VisualVM:jvisualvm.exe

VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。

在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.7.0_79\bin)目录下面,有一个jvisualvm.exe文件,双击打开,从UI上来看,这个软件是基于NetBeans开发的了。

javajvm.jpg

双击启动(或者cmd窗口输入jvisualvm,回车启动)

C:\Program Files\Java\jdk1.7.0_79\bin>jvisualvm

visualjvm.jpg

从界面上看还是比较简洁的,左边是树形结构,自动显示当前本机所运行的Java程序,还可以添加远程的Java VM,其中括号里面的PID指的是进程ID。OverView界面显示VM启动参数以及该VM对应的一些属性。Monitor界面则是监控Java堆大小,Permgen大小,Classes和线程数量。Profiler界面比较有趣,看样子似乎可以动态的对某个Java程序进行调优了。不过我没试用这个功能,感觉要调优还是在Netbeans里面比较自然一点,起码有代码,没代码调优了用处也不大。而且这里还有个问题,有些VM是没有Threads跟Profiler界面的,不知道是什么原因,像我截图里面的Weblogic的Server就没有这两个界面。

Sun VisualVM项目 开源Java问题解决方案

VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具。该工具由几个现有工具和新增功能合并而成的(如jvmstat、JMX、Attach API等)构成。VisualVM可以作为独立应用运行,或者通过其良好的API进行扩展。

在Java SE for Business的特性和优势页面上,VisualVM被描述为可以胜任如下任务的工具:

比以往任何时候都更快更容易地在已部署的应用中追踪导致可靠性、可用性或者可扩展性问题的根源。

根据VisualVM项目站点所述:

该工具的设计目标就是既可以在产品环境下使用,也可以在开发阶段使用,并且进一步加强了对Java SE平台的监控能力和性能分析能力。

一些特性列举如下:

  • 分析

  • Thread Dump

  • Heap Dump

  • 分析快照

  • 应用快照

当被问到针对其他版本JDK的特性的完善计划时,Thomas Hurka说到:

VisualVM使用了不同的技术以从JDK(jvmstat、JMX、Attach AP及Serviceablity agent)中取得数据。如果某项技术在特定的JDK或者操作系统上不可用,那么依赖于这些技术的VisualVM特性也将不可用。

此外,VisualVM是“可插拔的”。它含有几个插件使其能够监控、管理和修复部署在GlassFish上的应用,同时还有其他的插件使其能轻松地与NetBeans(nbproject插件)API协同工作。

<<上一课程
下一课程>>
推荐文章
  • 1.  /:根目录,一般根目录下只存放目录,在终端里输入/home,其实是在告诉电脑,先从/(即根目录)开始,再进入到home目录;2.  /bin,/user/bin:可执行的二进制文件的目录,如常用的命令:ls,tar,mv,cat等;3.  /boot:放置Linux系统启动时用到的一些文件,
  • 一、CentOS简介:Centos是社区企业操作系统,是Linux发行版之一。centos是由RedHatEnterpriseLinux依照开放源代码规定释出的源代码所编译而成,但它并不包含封闭源代码软件。You have specified that the package 'gcc' should be installed.
  • 1、首先,打开VM虚拟,在顶部点击虚拟机的选项卡,再在往下弹出的菜单中点击安装vmwaretools。2、然后,在虚拟机系统中弹出的自动播放的窗口中点击运行setup64.exe。3、接着,在进入到的欢迎界面的窗口中点击底部的下一步按钮。4、之后,根据界面的跳转和提示,再点击底部的安装按钮。5、如图
  • netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,
  • jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意!!!:使用的jdk版本是jdk8.类加载统计:Loaded:加载class的数量Bytes:所占用空间大小Unloaded:未加载数量By
  • 1.打开网址:https://visualvm.github.io/index.html2.点击Plugins3.点击PluginsCenters4.选择和自己JDK版本对应的5.点击VisualGC6.启动VisualVM cmd输入:jvisualvm,启动VisualVM7.点击工具中的插件8
学习大纲