一.简述 在web项目中,常使用tomcat作为web容器.代码编写的时候,由于业务需要,也常会使用线程机制.在系统运行一段时间之后,若出现响应慢或线程之间出现死锁的情况,要查出问题所在,需要使用jdk 提供的 jvuisualvm 工具,通过该工具监视tomcat的线程运行情况,从而解决问题. tomcat分为linux和windows版的,不同的版本若想使用jvuisualvm进行线程监视,需要进行不同的配置. 二.linux版本的tomcat配置 为了让本机器上的jvuisualvm 工具…
最近遇到了java heap space错误. 这个问题的原因,其实还是堆溢出了. 解决这个问题 1 首先我们考虑,在代码中哪里使用了较多的对象,但是又没有及时回收. 2 我们可以通过  jvisualvm.exe  工具去查看 我们先到jdk文件夹中的bin目录找到jvisualvm.exe.双击运行 然后找到我们运行的java程序,双击进入 然后按照下面,选择监视,cpu/内存,堆 Dump 然后,选择类,按照大小排序,找到消耗最大的对象,右键在实例视图中显示 这里我找的是int[],反正几…
使用JMX工具远程监控tomcat,在tomcat启动时添加配置参数: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port={your_port_number} -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname={your_serv…
jdk中自带了很多工具可以用于性能分析,位于jdk的bin目录下,jvisualvm工具可以以图形化的方式更加直观的监控本地以及远程的java进程的内存占用,线程状态等信息. 一.配置tomcat 在tomcat的 catalina.sh 文件开头加上如下配置 : JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl…
在查看内存溢出的时候,我们需要明白,堆溢出和持久代溢出,他们不一样,说到内存泄漏,我们就需要明白,内存中  年老代和新生代,和持久代,这3块的数据 自己的理解: new了一个对象,会进入到堆里面,先放到年轻代中 也就是new generation ,他放到eden中,如果eden满了,就会进行一次yong gc ,如果还有存活对象(被用到的对象)就会被移到S0区或者S1中转移,如果s0和S1都已经满了,那么这些对象(引用)就会把放到年老代中去,也就是old  generation 区, 如果ol…
一.tomcat相应jmx配置 1.在tomcat bin目录下的catalina.sh文件中添加如下配置: CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIP…
网上已经有很多这方面的资料,但有些很杂乱,这里做了整理总结. 一.Java VisualVM 概述 对于使用命令行远程监控jvm 太麻烦 . 在jdk1.6 中 Oracle 提供了一个新的可视化的. JVM 监控工具 Java VisualVM .jvisualvm.exe 在JDK 的 bin 目录下. 双击启动 Java VisualVM 后可以看到窗口左侧 "应用程序 "栏中有" 本地 "."远程 " ."快照 "三个…
jconsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请.释放等动作,将内存管理的所有信息进行统计.分析.可视化.我们可以根据这些信息判断程序是否有内存泄漏问题. 使用jconsole工具来分析WAS的JVM问题,需要进行相关的配置. 首先我们看WAS服务器端的配置. 1.登录was控制台https://10.4.119.18:9043/ibm/console/,找到自己的应用程序服务器---java和进程管理---进程定义--JAVA虚拟机,然后配置 通用JVM 参数…
原文链接:http://xjsunjie.blog.51cto.com/999372/1331880/ jconsole是JDK里自带的一个工具,可以监测Java程序运行时所有对象的申请.释放等动作,将内存管理的所有信息进行统计.分析.可视化.我们可以根据这些信息判断程序是否有内存泄漏问题.  使用jconsole工具来分析WAS的JVM问题,需要进行相关的配置.  首先我们看WAS服务器端的配置. 1.登录was控制台https://10.4.119.18:9043/ibm/console/,…
1.在 {服务器tomcat路径}/bin/catalina.sh 中,的[# OS specific support.  $var _must_ be set to either true or false.]位置上一行添加如下配置(如果已打开JAVA_OPTS配置,则追加未配置参数) JAVA_OPTS="-Xms3076m -Xmx3076m -Xss1024K -XX:PermSize=2048m -XX:MaxPermSize=3076m -XX:ParallelGCThreads=8…