jdk自带jmap查看Tomcat内存里类的情况出错

问题描述

很奇怪,项目的老年代的内存很大,就算满了,也是会释放一点点.所以想分析一下情况.首先,JDK和JRE的版本肯定一直的,-version看过了然后一开始想最好能够生产heapdump文件.命令jmap-F-dump:format=b,file=d:temp.hprof7644但是报错Exceptioninthread"main"java.lang.reflect.InvocationTargetExceptionatsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atsun.tools.jmap.JMap.runTool(JMap.java:179)atsun.tools.jmap.JMap.main(JMap.java:110)Causedby:sun.jvm.hotspot.debugger.DebuggerException:WindbgError:ReadVirtualfailed!atsun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.readBytesFromProcess0(NativeMethod)atsun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.readBytesFromProcess(WindbgDebuggerLocal.java:485)atsun.jvm.hotspot.debugger.DebuggerBase$Fetcher.fetchPage(DebuggerBase.java:76)然后无耐,折中看内存类的构成.命令jmap-F-histo7644.继续报错(报错内容一样)Debuggerattachedsuccessfully.Servercompilerdetected.JVMversionis20.6-b01Iteratingoverheap.Thismaytakeawhile...FindingobjectsizeusingPrintezisbitsandskippingover...Exceptioninthread"main"java.lang.reflect.InvocationTargetException但是我用jmap-heap7644查看heap是没有问题的.能够得到内存的使用情况信息.所以请问有谁能够帮忙解决一下.分数不多,请见谅

解决方案

解决方案二:
有人能指导一下嘛?????谢谢~~~~~~~~~~~~~!!!!!!!!!!!!!!!!!
解决方案三:
你tomcat和你现在jmap用的不是同一个jdk么?
解决方案四:
C:ProgramFilesJavajdk1.6.0_31bin>"C:ProgramFilesJavajdk1.6.0_31binjava"-versionjavaversion"1.6.0_31"Java(TM)SERuntimeEnvironment(build1.6.0_31-b05)JavaHotSpot(TM)64-BitServerVM(build20.6-b01,mixedmode)C:ProgramFilesJavajdk1.6.0_31bin>"E:jre6_x64binjava"-versionjavaversion"1.6.0_31"Java(TM)SERuntimeEnvironment(build1.6.0_31-b05)JavaHotSpot(TM)64-BitServerVM(build20.6-b01,mixedmode)我看过,他们是一样的.而我用jmap-heap7644也是没有报错的

时间: 2024-11-05 09:54:26

jdk自带jmap查看Tomcat内存里类的情况出错的相关文章

使用JDK自带jvisualvm监控tomcat

原文地址: http://my.oschina.net/kone/blog/157239 jdk自带有个jvisualvm工具.该工具是用来监控java运行程序的cpu.内存.线程等的使用情况.并且使用图表的方式监控java程序.还具有远程监控能力.不失为一个用来监控tomcat的好工具. 在jdk目录下的bin目录中可以找到jvisualvm.exe文件.直接启动可以看到如下界面: 以上是已经连接远程的界面.直观的监控界面.更有助于我们分析tomcat的运行情况. 下面主要介绍下怎么样使用本地

tomcat内存配置

  windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会影响程序的性能.比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存.   所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存: 如java -Xms64m -Xmx128m a.jar. tomcat的启动程序是包

任务调度(二)——jdk自带的Timer 动态修改任务执行计划

       上一篇博文<任务调度(一)--jdk自带的Timer>中,简单介绍了一下Timer,本文将分享一下如何动态修改Timer制定的计划.        先上代码: package com.tgb.ccl.schema.dynamic; import java.util.Date; /** * 可动态修改的任务 * * @author arron * @date 2015年5月9日 下午1:52:15 * @version 1.0 */ public class DynamicTime

Java程序内存分析:jdk自带的jmap能为我们带来什么

jmap 打印出某个java进程(使用pid)内存内的,所有'对象'的情况(如:产生那些对象,及其数量). 可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.使用方法 jmap -histo pid.如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象.jmap -dump:format=b,file=outfile 3024可以将3024进程的内存heap输出出来到out

dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)_DOS/BAT

如何在windows系统自带命令查看硬件信息,怎样dos命令查看硬盘和内存/CPU信息?最直接的是:开始→运行→CMD打开命令提示符,在该窗口下输入systeminfo执行,即可看到几乎所有想知道的系统信息,甚至包括机器上已安装的网卡及其IP. 问题描述: 如何从系统中 查看主板上内存条的数量.最佳答案: 在cmd命令下 输入:wmic memorychip list brief 或者 wmic MEMPHYSICAL list brief 就会看到内存条的数量 rem 查看cpu wmic c

Tomcat 内存溢出对应解决方式

阅读目录 1.Tomcat内存溢出的原因 2.OutOfMemoryError 堆内存溢出 3.OutOfMemoryError 永久保存区域溢出 3.OutOfMemoryError 无法创建新的线程   回到顶部 1.Tomcat内存溢出的原因 生产环境中Tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: OutOfMemoryError: Java heap space Ou

Tomcat内存溢出的三种情况及解决办法分析

Tomcat内存溢出的原因 在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存溢出是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. Tomcat内存溢出解决方案 对于前两种

Linux与Windows下tomcat内存设置

Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin/catalina.sh(默认文件内容) 以下是自己设置的另外增加一个setenv.sh文件来设置tomcat内存,给文件加上执行权限 #vi /opt/app/tomcat6/bin/setenv.shexport JAVA_OPTS="-server -Xms512m -Xmx1024m -XX

tomcat内存溢出总结

在生产环境中tomcat内存设置不好很容易出现内存溢出.造成内存原因是不一样的,当然处理方式也不一样. 这里根据平时遇到的情况和相关资料进行一个总结.常见的一般会有下面三种情况: 1.OutOfMemoryError: Java heap space 2.OutOfMemoryError: PermGen space 3.OutOfMemoryError: unable to create new native thread. 对于前两种情况,在应用本身没有内存泄露的情况下可以用设置tomcat