收藏 分销(赏)

JConsole监控JVM.docx

上传人:仙人****88 文档编号:12072967 上传时间:2025-09-06 格式:DOCX 页数:7 大小:276.95KB 下载积分:10 金币
下载 相关 举报
JConsole监控JVM.docx_第1页
第1页 / 共7页
JConsole监控JVM.docx_第2页
第2页 / 共7页


点击查看更多>>
资源描述
1. 前言 现在我们的系统在上线后一般情况我们都不知道如何了解JVM的实际运行情况,同时对于系统性能等问题也没有一些好的手段进行监控,好在JDK提供了一些简单的工具,如JConsole、JStat、JMap等辅助我们来直观的了解JVM的运行情况,下面我们就重点看看JConsole如何帮助我们进行分析。 JDK1.5提供JMX remote的管理工具Jconsole,可以监控Java运行程序的内存使用情况、活动线程数量、类装载的数量、MBeans的状态、虚拟机的各种信息等,还可以执行MBean公开的方法或强制进行垃圾回收。只要应用服务器实现标准的JMX接口,就可以使用Jconsole进行监控。 需要远程服务器监控时需要在JAVA_OPTS中设置-Dcom.sun.management.jmxremote这个参数 可以直接运行java/bin/Jconsole [PID]启动监控界面,这个监控工具是Java 1.5以上版本自带的,其中的PID是运行的java程序进度ID,可以不填,运行Jconsole后在界面中选择。 测试环境为: 服务器:Tomcat 5.5.28 本机IP:192.168.1.12 2. 启动JConsole 直接运行java/bin/Jconsole.exe,如下图: 监控本地运行的tomcat 我们可以根据需要选择本地、远程、高级的监控。我们当前直接在服务器上进行监控,所以就直接选择本地的监控,连接以后如下图所示: 在启动的界面中: 1.概述:有关堆内存使用情况,线程,类加载和CPU使用情况的综述; 2.内存:内存的详细情况,堆和其他内存; 3.线程:峰值/活动线程,另外,各个线程的明细信息,检测死锁; 4.类:监控加载和卸载的类,这个需要结合其他的工具进行分析; 5.MBean:当前Java程序的MBean(如果有的话)的操作; 6.VM摘要:有关JVM的明细信息; 3. 监控概要 从概要中我们可以直观的了解系统运行的总时间、线程数、内存与垃圾回收信息、装载类及操作系统内存的信息。 其中内存的信息对应我们配置的-Xms256m -Xmx512m 垃圾收集器对应我们配置的垃圾回收方式,每种方式的名称会有所不同,当我们没有配置垃圾回收方式时一般为UseParallelGC这种方式 (1)-XX:+UseConcMarkSweepGC 并行的CMS垃圾回收方式 GC名: ParNew ConcurrentMarkSweep 内存池名: CMS Perm Gen Par Eden Space Par Survivor Space Code Cache CMS Old Gen (2)-XX:+UseParallelGC 并行垃圾回收 GC名: PS Scavenge PS MarkSweep 内存池名: PS Survivor Space PS Perm Gen PS Old Gen PS Eden Space Code Cache (3)-XX:+UseParallelOldGC 并行垃圾回收 GC名: PS Scavenge PS MarkSweep 内存池名: PS Survivor Space PS Perm Gen PS Old Gen PS Eden Space Code Cache (4)-XX:+UseSerialGC 串行垃圾回收 GC名: Copy MarkSweepCompact 内存池名: Survivor Space Perm Gen Tenured Gen Eden Space Code Cache 4. 监控内存 对应SO、S1区,Eden,old以及Perm和cache 对于内存的监控我们主要会关注JVM垃圾回收的三代区域: 年轻代:PS Eden Space和PS Survivor Space 对应配置参数:-Xmn256M -XX:MaxNewSize=256M -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=5等 老年代:PS Old Gen 其值是:Old = Heap - Young={Eden,from,to} 对应配置参数包括:-Xms512m -Xmx1024m和年轻代的配置参数,from,to的值取决于SurvivorRatio这个参数的设置 持久代:PS Perm Gen 对应的配置参数:-XX:PermSize=256M -XX:MaxPermSize=512m 注:在观察内存的使用情况时首先保证相关的线条不是持续增长的,需要有回收的动作出现,并且可以估计其回收的内存大小,如果回收始终没有增长的多,特别是内存增长很多的情况,这时系统很可能存在内存泄露。这时我们可能需要通过其他的更详细的工具对系统的类及内存进行分析,如JMap等。 5. 监控线程 通过线程的监控可以查看系统中所有的线程数,同时可以点击单个的线程查看具体的线程运行情况,如: 可以结合windows命令netstat –na查看是否有CLOSE_WAIT的状态,有的话可以直接通过线程找到是否有对应的这个状态,这样就可以查出具体是什么线程存在泄露的情况。 6. 监控VM 可以查看JVM的综合信息,其中个人认为比较重要的是JIT的编译时间,这个可以通过对经常使用的类进行机器码编译来提供系统性能,如调整-XX:CompileThreshold=10000这个参数设置成10000次调用则直接编译成机器码。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服