`
gary_bu
  • 浏览: 43371 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA 自带jconsole 监听内存,CPU,线程

    博客分类:
  • java
 
阅读更多

最近使用JAVA 自带jconsole 监听web项目 内存,CPU,线程使用情况,感觉还蛮好的,下面介绍一下使用方法和过程

 

1.使用jconsole背景:

发现项目运行一段时间就会挂掉,最初认为是某些地方代码质量不高,导致内存泄露.打算找个内存分析工具分析一下.

2.使用过程:

 

监控本地工程:

正如 http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html#Enabling_JMX_Remote所说

Note: This configuration is needed only if you are going to monitor Tomcat remotely. It is not needed if you are going to monitor it locally, using the same user that Tomcat runs with.

 

jconsole监听本地工程不需要进行配置,windows平台是命令行 运行 'jconsole' 就可以打开监听窗口了



 本地进程会自动列示出来,只需要选择后,点击 '连接' 就可以了

 

概述选项卡,你可以看到内存使用情况,线程数,类数量,以及CPU的使用情况,你也可以点击单独的选项卡查看详细情况.

VM摘要,可以看到jconsole监控多长时间了,活动线程数,垃圾收集器有哪些,物理内存以及VM参数等.

 

 

监控远程服务器:

 

服务器是Linux 系统,

首先在$TOMCAT_HOME/bin中找到Catalina.sh文件,打开文件,找到

# OS specific support.  $var _must_ be set to either true or false. 这行,在这行下面加入:

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

  其中

 -Dcom.sun.management.jmxremote.port=1090远程监听端口.

 -Dcom.sun.management.jmxremote.ssl=false是否加密连接

 -Dcom.sun.management.jmxremote.authenticate=false是否密码访问

 

保存退出.

在设置完成之后需要重启Tomcat.此时可以采用netstat -an命令查看一下监听端口的状态.

另外需要注意的是在修改完Catalina.sh文件之后,查看一下/etc/hosts文件.是不是包含服务器真实IP地址,如果只有127.0.0.1的话,就加上,

 

 

 

hosts文件格式

ip地址   主机名/域名   (主机别名)

例如:192.168.4.141 Matata.Center localhost

 

现在配置就完成了,打开命令窗口,输入 jconsole ,选择远程进程,输入监听服务器地址:监听端口,

 

 点 '连接' 按钮,就可以监听服务器情况了

 

 

 下面说一下,解决问题的过程:

 

1.因为最初怀疑是内存泄露,所以先查看了一下内存使用情况,发现并不是太高,过一一周左右,在登陆上来查看的时候发现,内存基本保持平稳,却发现线程数有些多,达到了200多,

点击 '线程' 的选项卡,发现很多都是名字类似的线程,点击 一个线程后,从右边窗口的详情可以分析出是哪个类创建的线程,从而找到项目中的代码,修改了代码,又测试了一段时间,问题解决了.

 

思路: 模拟异常,让异常重现,通过监听查看那部分出了问题,分析异常点,找到对应的漏洞代码,修复代码.

 

 

 

  • 大小: 189.6 KB
  • 大小: 249.4 KB
  • 大小: 766.7 KB
  • 大小: 119.1 KB
  • 大小: 245.9 KB
分享到:
评论

相关推荐

    Jconsole监控Java应用

    Jconsole是JDK自带的监控工具,可以对Java应用程序进行监控。本文将介绍通过Jconsole工具对Java应用程序进行监控,包括环境准备、操作步骤和监控内容等。 环境准备 要使用Jconsole对Java应用程序进行监控,需要在...

    Java自带的性能监控工具使用简介

    JConsole 是 Java 5.0 自带的性能监控工具,可以监控 JVM 的性能,包括堆内存、线程、类加载等信息。JConsole 可以远程监控 JVM,需要在远程机器上启动 JMX 代理, 并在本地机器上使用 JConsole 连接到远程机器。 ...

    java jvm Jconsole

    ### Java JVM JConsole详解 #### 一、JConsole简介与基本使用 JConsole是一个由Oracle提供的免费工具,作为Java Development Kit (JDK)的一部分被包含其中。它是一个基于Java Management Extensions (JMX)的图形...

    JConsole(观察分析Java程序的运行)

    ### JConsole:观察与分析Java程序的运行 #### 一、JConsole简介 JConsole是自Java 5开始集成在JDK中的一个强大的性能监视和故障排除工具。它能够帮助开发者和运维人员监控Java应用程序的运行状态,并进行性能分析...

    在tomcat的catalina.sh文件中添加了jconsole检测内存配置

    JConsole是Java Development Kit (JDK)自带的一个GUI工具,它可以实时地监视Java应用程序的运行状态,包括内存使用、线程、类加载、系统属性、MBean等信息。通过JConsole,开发者或运维人员可以检测到内存泄漏、CPU...

    jconsole使用手册

    jconsole是Java Development Kit(JDK)5.0中自带的一个性能监控工具,用于监控Java运行状态、线程数、进程数、对象、JVM内存信息、时间等性能信息。该工具可以帮助开发者和管理员实时监控Java应用程序的运行情况,...

    jconsole 配置和JVM内存检测工具介绍

    jvm检测工具,jconsole工具介绍,其他同类工具介绍

    使用Jconsole对java的内存使用情况(JVM)进行监控参照.pdf

    JDK1.5提供了JMX remote的管理工具Jconsole,可以监控Java运行程序的内存使用情况、活动线程数量、类装载的数量、MBeans的状态、虚拟机的各种信息等,还可以执行MBean公开的方法或强制进行垃圾回收。下面我们将详细...

    基于Idea+Jconsole实现线程监控步骤

    基于Idea+Jconsole实现线程监控步骤可以帮助开发者快速地监控Java应用程序的性能,发现性能瓶颈,提高应用程序的性能和可靠性。本文的方法可以作为开发者学习和工作的参考,让开发者更好地掌握Java性能分析和优化...

    java读取CPU内存信息

    在Java编程中,获取CPU和内存信息是系统监控和性能分析的重要部分。下面将详细讲解如何使用Java API来读取这些信息。 首先,对于内存信息的读取,Java提供了`java.lang.Runtime`类和`java.lang.management....

    jconsole.jar下载

    Java提供了一款强大的可视化监控工具——jconsole.jar,它可以帮助开发者和系统管理员实时查看和分析JVM(Java Virtual Machine)的状态,包括内存使用、线程状态、类加载情况以及垃圾收集等关键指标。本文将详细...

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

    从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 ...

    jconsole-1.8.0.zip

    JConsole是Java开发工具包(JDK)自带的一个强大的、基于Java的图形用户界面(GUI)工具,它允许我们监控Java应用程序的资源使用情况,包括内存、线程、类加载以及JVM的垃圾收集等。本文将详细介绍JConsole及其在...

    asf.zip_java jmx jconsole_remote

    JDK1.5提供JMX remote的管理工具Jconsole,可以监控Java运行程序的内存使用情况、活动线程数量、类装载的数量、MBeans的状态、虚拟机的各种信息等,还可以执行MBean公开的方法或强制进行垃圾回收。只要应用服务器...

    jconsole.1.8.0jar

    首先,`jconsole.1.8.0.jar`是Java官方JDK中的一个组件,属于Java Mission Control(JMC)的一部分,主要负责图形化展示Java应用程序的资源使用情况,包括内存、线程、类加载、垃圾收集等核心指标。这个版本适用于...

    使用Jconsole对java的内存使用情况(JVM)进行监控.doc

    《使用Jconsole对Java内存使用情况(JVM)进行监控》 Jconsole是Java开发工具包(JDK)1.5版本及更高版本提供的一款基于Java Management Extensions (JMX)的图形化管理工具,用于实时监控Java应用程序的性能和资源...

    使用jconsole监听远程Tomcat服务的方法

    通过JConsole可以观察到Java应用的各种性能指标,例如内存使用量、线程状态、类使用情况、CPU使用率等。 在监控远程Tomcat服务时,首先需要确保Tomcat服务器的JVM启动时启用了JMX。JMX(Java Management Extensions...

    java 监控线程

    1. **JConsole**: JConsole是Java自带的可视化监控工具,它可以显示JVM的各种信息,包括线程的详细状态、CPU使用率等。通过JMX(Java Management Extensions)接口,开发者可以远程监控应用的线程情况。 2. **...

    使用Jconsole对java的内存使用情况(JVM)进行监控.pdf

    Jconsole是一款由JDK 1.5及更高版本提供的基于JMX(Java Management Extensions)的图形化管理工具,它可以实时监控Java虚拟机(JVM)的状态,包括内存使用、线程、类加载、MBeans以及虚拟机的详细信息。 描述中...

Global site tag (gtag.js) - Google Analytics