JConsole监控JVM

JConsole监控JVM

ID:38198465

大小:276.95 KB

页数:7页

时间:2019-06-07

JConsole监控JVM_第1页
JConsole监控JVM_第2页
JConsole监控JVM_第3页
JConsole监控JVM_第4页
JConsole监控JVM_第5页
资源描述:

《JConsole监控JVM》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.前言现在我们的系统在上线后一般情况我们都不知道如何了解JVM的实际运行情况,同时对于系统性能等问题也没有一些好的手段进行监控,好在JDK提供了一些简单的工具,如JConsole、JStat、JMap等辅助我们来直观的了解JVM的运行情况,下面我们就重点看看JConsole如何帮助我们进行分析。JDK1.5提供JMXremote的管理工具Jconsole,可以监控Java运行程序的内存使用情况、活动线程数量、类装载的数量、MBeans的状态、虚拟机的各种信息等,还可以执行MBean公开的方法或强制进行垃圾回收。只要应用服务器实现标准的JMX接口,就可以使用Jconsole

2、进行监控。需要远程服务器监控时需要在JAVA_OPTS中设置-Dcom.sun.management.jmxremote这个参数可以直接运行java/bin/Jconsole[PID]启动监控界面,这个监控工具是Java1.5以上版本自带的,其中的PID是运行的java程序进度ID,可以不填,运行Jconsole后在界面中选择。测试环境为:服务器:Tomcat5.5.28本机IP:192.168.1.122.启动JConsole直接运行java/bin/Jconsole.exe,如下图:监控本地运行的tomcat我们可以根据需要选择本地、远程、高级的监控。我们当前直接在服务

3、器上进行监控,所以就直接选择本地的监控,连接以后如下图所示:在启动的界面中:1.概述:有关堆内存使用情况,线程,类加载和CPU使用情况的综述;2.内存:内存的详细情况,堆和其他内存;3.线程:峰值/活动线程,另外,各个线程的明细信息,检测死锁;4.类:监控加载和卸载的类,这个需要结合其他的工具进行分析;5.MBean:当前Java程序的MBean(如果有的话)的操作;6.VM摘要:有关JVM的明细信息;1.监控概要从概要中我们可以直观的了解系统运行的总时间、线程数、内存与垃圾回收信息、装载类及操作系统内存的信息。其中内存的信息对应我们配置的-Xms256m-Xmx512m垃

4、圾收集器对应我们配置的垃圾回收方式,每种方式的名称会有所不同,当我们没有配置垃圾回收方式时一般为UseParallelGC这种方式(1)-XX:+UseConcMarkSweepGC并行的CMS垃圾回收方式GC名:ParNewConcurrentMarkSweep内存池名:CMSPermGenParEdenSpaceParSurvivorSpaceCodeCacheCMSOldGen(2)-XX:+UseParallelGC并行垃圾回收GC名:PSScavengePSMarkSweep内存池名:PSSurvivorSpacePSPermGenPSOldGenPSEdenSp

5、aceCodeCache(3)-XX:+UseParallelOldGC并行垃圾回收GC名:PSScavengePSMarkSweep内存池名:PSSurvivorSpacePSPermGenPSOldGenPSEdenSpaceCodeCache(4)-XX:+UseSerialGC串行垃圾回收GC名:CopyMarkSweepCompact内存池名:SurvivorSpacePermGenTenuredGenEdenSpaceCodeCache1.监控内存对应SO、S1区,Eden,old以及Perm和cache对于内存的监控我们主要会关注JVM垃圾回收的三代区域:年轻

6、代:PSEdenSpace和PSSurvivorSpace对应配置参数:-Xmn256M-XX:MaxNewSize=256M-XX:SurvivorRatio=2-XX:MaxTenuringThreshold=5等老年代:PSOldGen其值是:Old=Heap-Young={Eden,from,to}对应配置参数包括:-Xms512m-Xmx1024m和年轻代的配置参数,from,to的值取决于SurvivorRatio这个参数的设置持久代:PSPermGen对应的配置参数:-XX:PermSize=256M-XX:MaxPermSize=512m注:在观察内存的使用

7、情况时首先保证相关的线条不是持续增长的,需要有回收的动作出现,并且可以估计其回收的内存大小,如果回收始终没有增长的多,特别是内存增长很多的情况,这时系统很可能存在内存泄露。这时我们可能需要通过其他的更详细的工具对系统的类及内存进行分析,如JMap等。1.监控线程通过线程的监控可以查看系统中所有的线程数,同时可以点击单个的线程查看具体的线程运行情况,如:可以结合windows命令netstat–na查看是否有CLOSE_WAIT的状态,有的话可以直接通过线程找到是否有对应的这个状态,这样就可以查出具体是什么线程存在泄

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。