精华内容
下载资源
问答
  • websphere内存溢出

    2018-04-11 16:15:23
    涵盖websphere内存溢出处理方法、使用与诊断调优等,内容详实
  • webSphere内存溢出

    2016-11-10 09:28:00
    有一个做了很长时间的项目,是用websphere做生产环境的,可是一旦加载的项目过多,webSphere就很傲娇的内存溢出,这是一个折腾了公司里某个前辈很久很久的问题,因为是测试版,所以各种官方文档说的控制界面神马的都找不到...

     

    有一个做了很长时间的项目,是用websphere做生产环境的,可是一旦加载的项目过多,webSphere就很傲娇的内存溢出,这是一个折腾了公司里某个前辈很久很久的问题,因为是测试版,所以各种官方文档说的控制界面神马的都找不到,后来前辈说他是这样解决的,鉴于这不是神马公司机密,又怕以后忘了,就贴博客里了.

    1.websphere的 /usr/servers/defaultServer下追加 jvm.options文件
    2.jvm.options追加一下jvm参数
    -Xmx2048m
    -XX:PermSize=512m
    -XX:MaxPermSize=1024m
    3.重启websphere

    转载于:https://www.cnblogs.com/lakeslove/p/6049662.html

    展开全文
  • 项目中碰到Websphere内存溢出的情况。原因可能:出现过多内存泄漏,或者分配过多大内存等。解决方法:1、进入was管理控制台,选择 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,将"最大堆大小"改为...

    项目中碰到Websphere内存溢出的情况。原因可能:出现过多内存泄漏,或者分配过多大内存等。解决方法:

    1、进入was管理控制台,选择 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,将"最大堆大小"改为768或1024以上(跟机器内存相关,你的机器最好有较大内存)。保存。

    2、优化你的程序,减少要求分配较大内存的设计,优化数据连接池。

    3、给was打补丁。ibm网站上有相关补丁下载,不过最好升级到同系列的最新版本

    4、修改启动文件,使之不产生这些文件,设置如下:

    export IBM_HEAP_DUMP=false

    export IBM_HEAPDUMP=false

    export IBM_HEAPDUMP_OUTOFMEMORY=false

    export IBM_JAVACORE_OUTOFMEMORY=false

    分析以上4中方法,只有方法2才是根本解决之道。

    针对4,IBM网站上有详细阐述,特附如下:

    http://www-1.ibm.com/support/docview.wss?uid=swg21140641

    在您对 WebSphere Application Server 进行故障诊断时,日志记录工具很可能是您使用的第一项问题确定功能。这一工具集向用户和 IBM Support 提供深入了解运行时的能力,这种能力在确定基本问题时是必需的。

    WebSphere Application Server 日志记录基础结构是基于标准 Java 的日志记录基础结构(即java.util.logging)建立的。在一个典型的 WebSphere Application Server 配置中,日志记录被设置为将普通和严重的日志消息分别写入两个文件,即SystemOut.log 和 SystemErr.log。

    其他日志

    WebSphere Application Server 中还有其他两个日志文件:JVM native_stdout 和 native_stderr 文件。与 SystemOut.log 和 SystemErr.log 不同,这两个文件实际上是由 JVM 本身处理的,只包含与该 JVM 的操作有关的消息,而不包含来自 WebSphere Application Server 运行时的消息。

    假设在native_stderr.log里有这么一段日志:

    = 32), weak 0, final 7, phantom 3>

    JVMDG217: Dump Handler is Processing OutOfMemory - Please Wait.

    JVMDG315: JVM Requesting Heap dump file

    JVMDG318: Heap dump file written to C:\Program Files\IBM\WebSphere\AppServer\profiles\default\heapdump.20080730.174102.3784.phd

    JVMDG303: JVM Requesting Java core file

    JVMDG304: Java core file written to C:\Program Files\IBM\WebSphere\AppServer\profiles\default\javacore.20080730.174149.3784.txt

    JVMDG274: Dump Handler has Processed OutOfMemory.

    第一行是说需要2621456 bytes内存,分配失败;

    然后第二行告知可用内存只有5049520 bytes;

    第三行GC开始回收内存;

    第四行回收了4619080 bytes,总的可用内存变为9668600bytes。0% free是指当前可用/总内存大小,9668600/1073740288=0.0090,被约等于0了。

    第五行开始不知道在干什么,猜测是移动数据以获取连续空间?

    第十一行终于报内存不足了,然后会记录两个日志文件,heapdump、javacore.log。

    根据这两个日志的时间,可以到sysetemOut.log中查看当时在做什么操作。

    再看一段:

    = 32), weak 0, final 7, phantom 0>

    这段应该说明,可用内存很大,但申请连续内存时可能还是不足。这段日志记录的是gc回收后就正好够了,所以没有了上一段日志中的move。

    嗯,仅仅是猜测。

    展开全文
  • 项目中碰到Websphere内存溢出的情况。原因可能:出现过多内存泄漏,或者分配过多大内存等。解决方法:1、进入was管理控制台,选择 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,将"最大堆大小"改为...
    项目中碰到Websphere内存溢出的情况。原因可能:出现过多内存泄漏,或者分配过多大内存等。解决方法:
    1、进入was管理控制台,选择 应用程序服务器 > server1 > 进程定义 > Java 虚拟机,将"最大堆大小"改为768或1024以上(跟机器内存相关,你的机器最好有较大内存)。保存。
    2、优化你的程序,减少要求分配较大内存的设计,优化数据连接池。
    3、给was打补丁。ibm网站上有相关补丁下载,不过最好升级到同系列的最新版本
    4、修改启动文件,使之不产生这些文件,设置如下:
        export IBM_HEAP_DUMP=false
        export IBM_HEAPDUMP=false
        export IBM_HEAPDUMP_OUTOFMEMORY=false
        export IBM_JAVACORE_OUTOFMEMORY=false
    分析以上4中方法,只有方法2才是根本解决之道。
    针对4,IBM网站上有详细阐述,特附如下:
    http://www-1.ibm.com/support/docview.wss?uid=swg21140641



    用于故障诊断的工具:
    http://www.ibm.com/developerworks/cn/websphere/techjournal/0702_supauth/0702_supauth.html

    在您对 WebSphere Application Server 进行故障诊断时,日志记录工具很可能是您使用的第一项问题确定功能。这一工具集向用户和 IBM Support 提供深入了解运行时的能力,这种能力在确定基本问题时是必需的。

    WebSphere Application Server 日志记录基础结构是基于标准 Java 的日志记录基础结构(即java.util.logging)建立的。在一个典型的 WebSphere Application Server 配置中,日志记录被设置为将普通和严重的日志消息分别写入两个文件,即SystemOut.log 和 SystemErr.log。
        
    其他日志
    WebSphere Application Server 中还有其他两个日志文件:JVM native_stdout 和 native_stderr 文件。与 SystemOut.log 和 SystemErr.log 不同,这两个文件实际上是由 JVM 本身处理的,只包含与该 JVM 的操作有关的消息,而不包含来自 WebSphere Application Server 运行时的消息。



    假设在native_stderr.log里有这么一段日志:

    <AF[3160]: Allocation Failure. need 2621456 bytes, 195 ms since last AF>
    <AF[3160]: managing allocation failure, action=2 (5049520/1073740288)>
      <GC(3538): GC cycle started Wed Jul 30 17:41:02 2008
      <GC(3538): freed 4619080 bytes, 0% free (9668600/1073740288), in 6135 ms>
      <GC(3538): mark: 992 ms, sweep: 28 ms, compact: 5115 ms>
      <GC(3538): refs: soft 0 (age >= 32), weak 0, final 7, phantom 3>
      <GC(3538): moved 6184798 objects, 298397088 bytes, reason=1, used 101520 more bytes>
    <AF[3160]: managing allocation failure, action=3 (9668600/1073740288)>
    <AF[3160]: managing allocation failure, action=4 (9668600/1073740288)>
    <AF[3160]: managing allocation failure, action=6 (9668600/1073740288)>
    JVMDG217: Dump Handler is Processing OutOfMemory - Please Wait.
    JVMDG315: JVM Requesting Heap dump file
    JVMDG318: Heap dump file written to C:\Program Files\IBM\WebSphere\AppServer\profiles\default\heapdump.20080730.174102.3784.phd
    JVMDG303: JVM Requesting Java core file
    JVMDG304: Java core file written to C:\Program Files\IBM\WebSphere\AppServer\profiles\default\javacore.20080730.174149.3784.txt
    JVMDG274: Dump Handler has Processed OutOfMemory.
    <AF[3160]: Insufficient space in Javaheap to satisfy allocation request>
    <AF[3160]: completed in 92673 ms>



    第一行是说需要2621456 bytes内存,分配失败;
    然后第二行告知可用内存只有5049520 bytes;
    第三行GC开始回收内存;
    第四行回收了4619080 bytes,总的可用内存变为9668600bytes。0% free是指当前可用/总内存大小,9668600/1073740288=0.0090,被约等于0了。
    第五行开始不知道在干什么,猜测是移动数据以获取连续空间?
    第十一行终于报内存不足了,然后会记录两个日志文件,heapdump、javacore.log。
    根据这两个日志的时间,可以到sysetemOut.log中查看当时在做什么操作。

    再看一段:

    <AF[2]: Allocation Failure. need 524 bytes, 383 ms since last AF>
    <AF[2]: managing allocation failure, action=0 (528723272/536869376)>
      <GC(2): GC cycle started Sat Apr 05 21:40:31 2008
      <GC(2): freed 3529224 bytes, 99% free (532252496/536869376), in 10 ms>
      <GC(2): mark: 7 ms, sweep: 3 ms, compact: 0 ms>
      <GC(2): refs: soft 0 (age >= 32), weak 0, final 7, phantom 0>
    <AF[2]: completed in 11 ms>



    这段应该说明,可用内存很大,但申请连续内存时可能还是不足。这段日志记录的是gc回收后就正好够了,所以没有了上一段日志中的move。

    嗯,仅仅是猜测。

    转载于:https://www.cnblogs.com/Mr-Rocker/p/3678215.html

    展开全文
  • websphere 内存溢出处理

    2009-10-24 09:17:15
    websphere 内存溢出处理 启用进程跟踪,可以产生native_stderr.log文件,通过分析工具分析分析这个文件,可以知道有哪些对象没有被释放等信息。默认WebSphere不启用这个功能,要启用这个功能参考...

    websphere 内存溢出处理

    1. 启用进程跟踪,可以产生native_stderr.log文件,通过分析工具分析分析这个文件,可以知道有哪些对象没有被释放等信息。默认WebSphere不启用这个功能,要启用这个功能参考http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg21114927
    2. Java虚拟机发生一次堆内存申请失败(Allocation Failure),由于Java虚拟机规范规定,在发生Allocation Failure之后必须进行GC操作,Java虚拟机会进行一次GC操作。所以系统缓慢的原因在于

      <1> 对象的内存申请失败
      <2>频繁的GC本身会占用大量CPU时间。

      同时,如果内存申请操作连续失败,即使GC之后也不能申请内存,就会发生core dump,并且同时存在heapdump文件,这说明WebSphere系统发生了内存溢出(OOM)。

      频繁发生GC和系统core dump的原因是一致的,即内存总是申请失败(Allocation Failure)。
    3. 通常情况下,频繁发生core dump是由于以下两类原因导致
      1 内存泄漏

      堆内存申请失败通常是由于系统中存在大量不能被GC操作所删除的对象,由于GC只删除没有引用指向的对象,所以,如果在编程的时候没有消除对过期对象的引用(将引用置为null),那么此过期对象就无法被删除。大量的过期对象会导致大量的堆内存被占用。

      2 内存碎片问题

      通常情况下,对于Java虚拟机出现,只需要配置heap最大最小值,以及maxPermSize,但是这种情况仅限于SUN的Java虚拟机。对于IBM的JVM,情况就完全不一样

      对于Sun的JVM来说,它的GC策略默认是复制、分代算法。也就是说,它会将heap分成不同的几个区,譬如Solaris JVM中最上面有两个大小相等的区。GC时刻,将一个区的存活对象复制到另外一个对等区,垃圾对象就算遗弃了。这样在heap里面,就不存在碎片问题。

      另外Sun的JVM有单独的方法区,也就是Permanent Generation,方法区中保存的一般是Class对象,而不是普通的实例对象,也就是JVM的元数据。

      IBM的JVM默认GC策略并没有采取复制、分代。这个可以从GC日志分析出来。它不像Sun的JVM那样,有个单独的方法区,它的方法区就放在Java Heap里面。在IBM的JVM里面,这些对象一般分配在称为k-cluster和p-cluster里(cluster又是属于Heap),而后者一般是临时在heap里面申请。并且,这些cluster是不能GC,或是被移动重排的(Compact过程)。这就导致Java Heap里面就如同蜂窝,但不同的蜂孔又不能合并,于是,当我们程序里面产生一个大对象,譬如2M的数组(数组必须分配在连续的内存区)时,就没有可分配空间了,于是就报告OOM。这些不能被移动的cluster之间的空隙就称为所谓的碎片。此时,JVM的Heap利用率可能不到50%。

      再说一个细节,k-cluster能够存放1280个类对象,第一个p-cluster大小为16K,默认存放类似于JNI对象和线程对象等不能移动的对象(pinned),然后k-cluster中存放不下的类对象也会放在p-cluster中,第一个p-cluster满了之后,后续的p-cluster大小只有2K,一个类对象大小是256字节。

      此类碎片问题无法通过重整解决。碎片只是一个通俗的说法,正确的含义是每两个p簇之前的空隙过小,可以视为碎片。由于p簇是不能移动不能删除的,所以碎片的大小完全是由类的加载情况决定的。也就是说可能某次was启动之后恰巧不会oom,也可能启动不久就会oom。

      要想完全解决,只能通过实验测试出恰当的-Xp和-Xk的值
      所以,升级到1.3.1 SR7以后的版本就可以用-xK和-xP了。
      说到底,这是IBM JVM 1.4设计上的缺陷,IBM JVM 1.5已经不存在P、K族的问题了,并且1.5的GC机制已经在向SUN的实现靠拢,在JVM的实现中,SUN/HP是一个流派,JRocket/IBM是一个流派,当中数IBM最异类,JRocket虽然不使用分代GC机制,但却很少出现OOM的问题
      IBM JDK 1.5已经重新写了JVM。据说GC算法改了,碎片问题应该会好很多。
    4. http://www.itpub.net/viewthread.php?tid=942211&extra=&page=1
    5. http://blog.csdn.net/zwhfyy/archive/2007/01/18/1486474.aspx
    6. http://www.blogjava.net/tacy/archive/2008/03/16/186666.html
    7. http://blog.chinaunix.net/u/32831/showart_386177.html
    展开全文
  • Excessive native memory use in IBM WebSphere Application Server 6.0 and 6.1 Excessive native memory use in IBM WebSphere Application Server 6.0 and 6.1  Technote (troubleshooting)   Problem...
  • 1:服务器-->服务器类型-->WebSphere Application Server 2:点击进入server1 3:如果是was7的话    服务器基础机构-->管理-->定制属性  如果的was6的话  java进程和管理-->环境条目 4:分别...
  •  set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]  $AdminControl invoke $objectName generateHeapDump   7:导出 javacore****.txt 截图: 导出 heapdump**...
  • ha456.jar可以准确找到内存溢出位置。
  • 在基于WebSphere Application Server的Web应用程序中,内存利用率会严重影响系统性能。 最常见的内存问题之一是内存泄漏,它会导致严重的性能下降。 从理论上讲,由于Java™具有垃圾回收(GC),因此不应在Java™中...
  • [9/10/13 14:30:54:400 CST] 000000e1 ServiceLogger I com.ibm.ws.ffdc.IncidentStreamImpl resetIncidentStream FFDC0010I: FFDC closed incident stream file C:\IBM\WebSphere\AppServer\profiles\AppSrv01\lo...
  • websphere 内存溢出 javacore分析工具jca456 分析javacore的好工具 分析javacore的好工具
  • 其中 heapdump.***.phd 为服务器phd文件,可查看哪些对象和方法占用内存 ha452.jar 可以通过搜索 HeapDump分析 下载 转载于:https://my.oschina.net/u/819458/blog/215357
  • Windows下对WebSphere运行时内存溢出.CPU占用率高和自动停止的问题的监控 1. 出现内存溢出的时候. 在WebSphere运行的时候,如果出现了内存溢出,那么原因是多样的.可能是因为程序中有不良的代码,引致申请了的内存不...
  • 如果你当前安装的WAR包过大,会导致WAS解析很久,之后内存pengz
  • 将一个在tomcat上运行正常的项目放到websphere中,通过war包的方式进行部署,使用was的dmgr管理台进行上传war时,会在上传界面卡死,找了好久也没有找到问题的所在,最后在,发现了该问题是was的dmgr内存溢出。...
  • WAS安装WAR包时报内存溢出解决方法:   1.检查服务器空间是不是爆满。 2.调整WAS控制台JVM参数,把初始内存和最大内存调大。 3.打开项目中的web.xml,检查xml的头定义,检查javaee的版本...
  • WAS 内存溢出分析

    2018-12-04 20:43:16
    Websphere Application Server WAS 内存溢出分析,帮助分析内存问题
  • 系统64位linux redhat6 was6.0,部署应用时日志显示:R java.lang.OutOfMemoryError: ZIP006:OutOfMemoryError, ENOMEM error in ZipFile.open;war包是没问题的在我本地虚拟机上可以正常部署,只是我本地的是32位...
  • 我在windows32系统上安装了websphere6.1,其中里面部署了20个应用,在启动是时候,会出现内存溢出的现象,但是这个现象不是每次启动都出现,不过出现的频率是挺高的。这20个应用运行一段时间后,重启websphere的时候...
  • was集群情况下,如果一个节点由于某种原因(内存溢出)导致服务重启,那么集群中其他的节点在该节点启动后会自动与其同步,同步的过程会导致本节点的应用重新启动。如果这些节点重启之后有需要重新初始化的需要,...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

websphere内存溢出