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

    2018-04-11 16:15:23
    涵盖websphere内存溢出处理方法、使用与诊断调优等,内容详实
  • 项目中碰到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内存溢出.pdf

    2010-06-11 22:04:33
    websphere内存溢出的经验总结 使用 TPV监视JVM
  • 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

    展开全文
  • 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...

    [10-5-18 16:08:43:855 CST] 00000161 SystemErr     R Exception in thread "WebContainer : 18" java.lang.OutOfMemoryError
    [10-5-18 16:08:44:470 CST] 00000161 SystemErr     R 	at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:303)
    [10-5-18 16:08:44:470 CST] 00000161 SystemErr     R 	at com.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl.allocateCommon(WsByteBufferPoolManagerImpl.java:514)
    [10-5-18 16:08:44:470 CST] 00000161 SystemErr     R 	at com.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl.allocateDirect(WsByteBufferPoolManagerImpl.java:450)
    [10-5-18 16:08:44:470 CST] 00000161 SystemErr     R 	at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:472)

     解决方法:

    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(Abstract)
    The use of asynchronous data transfer may require an excessive number of buffers to send data over a TCP/IP connection.


    This predominately occurs when files are being transferred (e.g., a PDF being returned in a response, the dmgr updating the nodeagents, etc.) but, can also occur with normal responses from IBM® WebSphere® Application Server. 
     
    Symptom
    The process size for the application server or deployment manager can grow quite large.


    You may also see OutOfMemoryError’s thrown and malloc errors in SystemOut.log. 
    JVMDBG001: malloc failed to allocate … 
     



    Cause
    A new feature was added to allow the sending of data asynchronously as a performance enhancement. Unfortunately, this can require the allocation of enough buffers to contain the entire file being transferred (java.nio.DirectByteBuffer's). 


    Depending on the size of the file, this can be a bad decision, as it may require a large amount of memory. There are also occasions when these buffers will not be freed up, causing even more problems with native memory utilization. 
     

    Environment
    WebSphere Application Server 6.0.2 and 6.1 
     

    Diagnosing the problem
    Check the JVM’s™ process size using operating system specific tools (e.g., ps, top, perfmon). Check the Application Server logs for malloc errors. 
     

    Resolving the problem
    A Java™ property can be set which will force the data transfer to be synchronous rather than asynchronous. Since the asynchronous transfer is generally faster, at least for small files, the use of synchronous transfer may result in a slight performance impact. This performance impact should be quite small, and would be far outweighed by the performance impact of the extra memory used by all of the buffers allocated by the asynchronous transfer algorithm.

    This property was added in later Application Server FixPacks, so you may need to upgrade your Application Server installation before setting the property. 


    1. Check if your Application Server installation is at least at 6.0.2.21 or 6.1.0.11, depending on whether you are on Application Server 6.0.2 or 6.1. If not, please install one of the FixPacks to get your installation up to that level or more recent.

    2. Set the channelwritetype property to use synchronous data transfer (sync):

    For an application server
    In the Admin Console: 
    Servers -> Application Servers -> serverName -> Web Container Settings -> Web Container -> Custom Properties:
    Press New:
    Add the following pair: 
    Name: com.ibm.ws.webcontainer.channelwritetype
    Value: sync
    Press OK, and then save the configuration.

    The application server must be recycled to pick up the property.


    For a deployment manager
    Start an interactive wsadmin session: 
    <dmgr-profile-root>\bin>wsadmin -lang jacl

    Copy the following block of lines, then paste them all at once at the wsadmin> prompt: 
    set dmgr [$AdminConfig getid /Server:dmgr/]
    set webcontainer [$AdminConfig list WebContainer $dmgr]
    $AdminConfig create Property $webcontainer {{name com.ibm.ws.webcontainer.channelwritetype} {value sync}} properties
    $AdminConfig show $webcontainer
    $AdminConfig save

    The deployment manager must be recycled to pick up the property.
    ,照此设置即可。

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

    2014-05-28 14:11:40
    Java虚拟机发生一次堆内存申请失败(Allocation Failure),由于Java虚拟机规范规定,在发生Allocation Failure之后必须进行GC操作,Java虚拟机会进行一次GC操作。所以系统缓慢的原因在于 &lt;1&gt; 对象的内存...
    1. 启用进程跟踪,可以产生
    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算法改了,碎片问题应该会好很多。

    参考地址:http://www.verydemo.com/demo_c89_i231239.html

    展开全文
  • ha456.jar可以准确找到内存溢出位置。
  •  set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]  $AdminControl invoke $objectName generateHeapDump   7:导出 javacore****.txt 截图: 导出 heapdump**...
  • 其中 heapdump.***.phd 为服务器phd文件,可查看哪些对象和方法占用内存 ha452.jar 可以通过搜索 HeapDump分析 下载 转载于:https://my.oschina.net/u/819458/blog/215357
  • WAS 内存溢出分析

    2018-12-04 20:43:16
    Websphere Application Server WAS 内存溢出分析,帮助分析内存问题
  • was安装后Java 虚拟机的初始堆大小默认为50M和最大堆大小默认为256M,当应用程序比较大时,容易出现内存溢出的情况,此时需要调整初始堆及最大堆的大小。 调整Dmgr Java 虚拟机的初始堆大小和最大堆大小 在...
  • 1:服务器-->服务器类型-->WebSphere Application Server 2:点击进入server1 3:如果是was7的话    服务器基础机构-->管理-->定制属性  如果的was6的话  java进程和管理-->环境条目 4:分别...
  • websphere 内存溢出 javacore分析工具jca456 分析javacore的好工具 分析javacore的好工具
  • Windows下对WebSphere运行时内存溢出.CPU占用率高和自动停止的问题的监控 1. 出现内存溢出的时候. 在WebSphere运行的时候,如果出现了内存溢出,那么原因是多样的.可能是因为程序中有不良的代码,引致申请了的内存不...
  • 软件介绍: IBM websphere 服务器出现内存溢出或其他故障时,会生成heapdump文件,本工具用于分析heapdump,查找错误原因。运行IBN WEBSPHERE HEAPDUMP需要安装JDK1.8框架。
  • 在基于WebSphere Application Server的Web应用程序中,内存利用率会严重影响系统性能。 最常见的内存问题之一是内存泄漏,它会导致严重的性能下降。 从理论上讲,由于Java™具有垃圾回收(GC),因此不应在Java™中...
  • 内存溢出问题定位

    千次阅读 2019-06-10 17:08:28
    JVM内存溢出问题定位 前言:内存溢出是程序运行中很常见的一个问题,导致这个问题发生的可能性也有很多,如内存分配不足或者内存泄漏等,如何定位到问题所在是非常重要的,至此记录一下关于定位内存溢出问题的方法与...
  • WAS内存溢出处理方法

    千次阅读 2018-12-05 10:18:03
    有时内存溢出会导致WAS挂了,有时不会挂,会自动恢复。 如果WAS挂了,重启即可,不用额外操作收集信息。 后续分析日志: 下载native_stderr.log文件,在/was7/profiles/AppSrv01/logs/server1下,与SystemOut.log...
  • 该文档整合了网上所有的关于描述was(webSphere)下生成许多phd文件的...产生该类文件的原因包括JVM设置的最小内存太小,以至于内存溢出,还有就是程序漏洞,使得JVM内存溢出,文档中叶介绍了websphere的检测工具的使用
  • 内存溢出的几种原因和解决办法

    万次阅读 多人点赞 2018-03-19 16:48:32
    对于JVM的内存写过的文章已经有点...第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出:那什么样的情况就是堆栈溢出呢?当你看到下面的关键字的时候它就是堆栈溢出了:java.lang.OutOfMem...
  • WebSphere莫名自动重启\OOM问题记录

    千次阅读 2015-10-13 15:01:26
    应用在Tomcat下跑的妥妥儿的, 在WebSphere 7.0.0.7中部署时,经常会出现部署超时,内存溢出等异常;就算部署上了,WebSphere自动重启等问题也比较困扰。 原因从大范围上有以下几点: A. WebSphere版本问题,WAS7.0...
  • http://blog.csdn.net/zyc88888/article/details/64905716让我们看一下我们日常在开发过程中接触内存溢出的异常: Exception in thread "main" [Full GCjava.lang.OutOfMemoryError: Java heap space ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,591
精华内容 1,436
关键字:

websphere内存溢出