转自:http://www.cnblogs.com/luihengk/p/5446279.html

一.找到java应用程序对应的进程PI

性能测试应用程序访问地址:http://192.168.29.218:7070/training/

部署的应用服务器为tomcat6.028

  1. 启动tomcat服务器后,任务管理器里可以看到多了java.exe进程,如图

PS:这里启动了多个其他程序

2.查询测试应用程序对应的进程PID号(根据端口号查找)

1)  Cmd命令:netstat  -aon|findstr  "7070"

二.启动JConsole监控工具

方法一:

打开cmd命令窗口,进入jdk安装路径下/bin目录,

输入命令:JConsole “PID号” 如图:

如图自动启动并打开JConsole监控界面:

方法二:进入jdk安装目录bin目录下,双击运行JConsole.exe程序,选择应用程序对应的PID程序连接或双击即可

三.对图表进行性能分析

JConsole主要是监控java应用程序,它是jdk自带的工具,一个基于JMX用于连接正在运行的JVM,会启动com.sun.management.jmxremote实现默认地JMX管理客户端。

1)  概要

概要界面可以实时查看java应用程序的堆内存使用情况、线程、类以及CPU使用情况,如图:

2)  内存

内存界面可以在图表选择“堆内存使用情况”和“非堆内存使用情况”实时图,并显示内存详细信息:使用内存、分配:最大值等,如图:

PS:重点关注使用内存的占比,使用内存与最大值之间的合理比值为1:3,已使用内存不能大于1/2最大值,否则内存存在瓶颈。

3)  线程

线程图不是重点关注,只关注该线程情况,并可以检测是否有死锁线程。

4)  类

类图并不是重点关注图,与应用程序类的多少有关,无固定值。

1)  VM摘要

VM摘要图是观察JVM使用情况图

堆是由Java虚拟机(JVM,下文提到的JVM特指Sun hotspot JVM)用来存放Java类、对象和静态成员的内存空间,Java程序中创建的所有对象都在堆中分配空间,堆只用来存储对象,应用程序通过存放在堆栈(Stack)内的引用来访问堆数据,一个JVM进程只能拥有一个堆。JVM通过-Xms和-Xmx参数分别设置堆的初始值和最大值。

此图需要关注分析当前堆大小、堆大小的最大值、分配的内存,以及物理总内存和可用物理内存。

(转)利用JConsole工具监控java程序内存和JVM的更多相关文章

  1. 利用JConsole工具监控java程序内存和JVM

    一.找到java应用程序对应的进程PI 性能测试应用程序访问地址:http://192.168.29.218:7070/training/ 部署的应用服务器为tomcat6.028 启动tomcat服 ...

  2. 如何利用JConsole观察分析Java程序的运行并进行排错调优_java

    如何利用JConsole观察分析Java程序的运行并进行排错调优_java 官方指导  use jconsole use jmx technology

  3. 如何利用 JConsole观察分析Java程序的运行,进行排错调优

    原文链接:http://jiajun.iteye.com/blog/810150 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

  4. 如何利用JConsole观察分析JAVA程序的运行

    今天在CSDN看到一朋友说关于对JVM的研究,正好看到有关于jconsole的文章,特意找了下资料,留着备用 ps:jconsole建议用JDK1.6的1.5的界面太简陋了,另外还有增强版jvisua ...

  5. jconsole工具监控java运行情况

    jconsole是jdk自带的工具.所以要先安装jdk  1.jconsole工具的路径: 通过which jconsole来查看 /usr/local/jdk1.7.0_79/bin/jconsol ...

  6. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行

    利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

  7. 使用linux perf工具生成java程序火焰图

    pre.cjk { font-family: "Nimbus Mono L", monospace } p { margin-bottom: 0.1in; line-height: ...

  8. install4j 工具为java程序打包exe

    用 install4j 工具为java程序打包exe 制作人:mark 制作时间:2013-05-02 用Eclipse 将程序源码打包成jar文件. 打包jar方法我不做介绍了,相信大家都会,不会的 ...

  9. Java 程序内存分析

    转自:http://www.iteye.com/topic/528230 java程序内存主要分为了2个部分,包括stack segment(栈内存区).heap segment(堆内存区). 在分析 ...

随机推荐

  1. python学习笔记1.2

    在python中%的用处是求余数,而不是除数.

  2. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  3. MySQL 经典面试题

    MySQL 面试 1 存储过程 什么是存储过程 存储过程是一些编译好的SQL语句 因为系统在调用SQL的时候比较浪费时间,所以之前先将一些基本的额SQL语句代码进行编译(对单表或多表的增删改查),然后 ...

  4. JS(三)

    上周介绍了JS中两个比较重要的东西,循环和函数,这周再给大家介绍一下BOM和DOM 一.BOM 1.首先来说一下什么是BOM,BOM即浏览器对象模型,说白一点就是与浏览器进行的交互的对象模型. 2.B ...

  5. CSS的常用属性

    刚开始学习前段的我,还处于初级阶段,一些东西还是会有搞不明白的时候,还是要大家多多理解.今说就一些关于CSS的常用属性吧! 一.CSS常用选择器 CSS选择器应该说是一个非常重要的工具吧,选择器用得好 ...

  6. Matlab入门学习(矩阵、函数、绘图的基本使用)

    一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[ ; ; ] a = >> b=[ ; ; ]; >&g ...

  7. spring实例化dataSource使用jndi和jdbc两种方式

    一.使用jndi的方式 这种方式方便测试人员不需要改代码,直接改变tomcat的server.xml就可以更改数据库连接 spring创建bean <bean id="dataSour ...

  8. GMF常见问题

    1.问题:连接线旁边没有文字标签和箭头 文字标签:在gmfmap里的Connection Mappping下增加Label Mapping元素:箭头:在gmfgraph里为Polyline Conne ...

  9. 一、js的数据类型

    一.数据类型 ECMAScript中有5种简单数据类型:Undefined.Null.Boolean.Number和String.还有一种复杂数据类型--Object.ECMAScript不支持任何创 ...

  10. Redis——windows环境安装redis和redis sentinel部署

    一:Redis的下载和安装 1:下载Redis Redis的官方网站Download页面,Redis提示说:Redis的正式版不支持Windows,要Windows学习Redis,请点击Learn m ...