项目中碰到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。

嗯,仅仅是猜测。

Websphere内存溢出的日志的更多相关文章

  1. webSphere内存溢出

    有一个做了很长时间的项目,是用websphere做生产环境的,可是一旦加载的项目过多,webSphere就很傲娇的内存溢出,这是一个折腾了公司里某个前辈很久很久的问题,因为是测试版,所以各种官方文档说 ...

  2. websphere内存溢出,手动导出was的phd和javacore文件

    网上有很多方法,ibm官方也提供了.但是,好奇怪,好像只有百度博客的一片文章提出要先设置环境条目或定制属性,否则命令不生效. 所以,转载博客的时候,你最好自己尝试一下,要不然你就是在害人害己!我测试了 ...

  3. (转)websphere内存溢出,手动导出was的phd和javacore文件

    原文:https://www.cnblogs.com/zhengbn/p/3499700.html 1:服务器-->服务器类型-->WebSphere Application Server ...

  4. 高并发下,log4j日志打印行数导致的内存溢出问题

    log4j日志打印时,如果将行数打印出来,在调用量极大的情况下,会出现内存溢出问题. log4j打印日志,打印行数时,行数是通过一个一个exception抛出,再极高调用量的情况下,内存会因为exce ...

  5. 一次apk打开时报内存溢出错误,故写下内存溢出的各种原因和解决方法

    原转载:https://blog.csdn.net/cp_panda_5/article/details/79613870 正文内容: 对于JVM的内存写过的文章已经有点多了,而且有点烂了,不过说那么 ...

  6. JVM 内存溢出(转载~)

    对于JVM的内存写过的文章已经有点多了,而且有点烂了,不过说那么多大多数在解决OOM的情况,于此,本文就只阐述这个内容,携带一些分析和理解和部分扩展内容,也就是JVM宕机中的一些问题,OK,下面说下O ...

  7. PHP内存溢出解决方案

    一.内存溢出解决方案 在做数据统计分析时,经常会遇到大数组,可能会发生内存溢出,这里分享一下我的解决方案.还是用例子来说明这个问题,如下: 假定日志中存放的记录数为500000条,那么解决方案如下: ...

  8. 游戏服java程序启动,显示内存溢出

    1.OutOfMemoryError:Java heap space 过程:服务器上面的mysql突然异常重启,导致了程序启动的时候报错 问题1:OutOfMemoryError:Java heap ...

  9. Tomcat常见的内存溢出,以及解决方法

    一.常见的三种内存溢出错误: 1.java.lang.OutOfMemoryError:java heap space    ====JVM Heap(堆)溢出 JVM再启动的时候回自动设置JVM H ...

随机推荐

  1. maven mirror

    国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用. ====================国内OSChina提供的镜像,非常不错=========== ...

  2. 注解SpringMVC

    <!--注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.Reque ...

  3. PHP 数组转JSON数据(convert array to JSON object);

    <?php header('Content-type: appliction/json; charset=shift-JIS'); $data =array(); class Test { pu ...

  4. Android 学习手札(备注)

    1.在Android 应用程序中不能使用System.out.println(..)来输出信息,而要使用Log类中的静态方法输出调试信息. Log.d("onStart", &qu ...

  5. Access自动编号的初始值设置及重置编号 转

    方法如下: ALTER TABLE tableName ALTER COLUMN Id COUNTER (100, 5) 其中:tableName为要修改的表名,Id为自动编号列,100为初始值,5为 ...

  6. PhotoSwipe.js 相册展示插件学习

    PhotoSwipe.js官网:http://photoswipe.com/,在这个网站上可以下载到PhotoSwipe的文件以及相关的例子. 这个组件主要是用来展示图片.相册用的,还是很实用的. 一 ...

  7. cloudera目录位置

    http://www.aboutyun.com/thread-9189-1-1.html 这里来的嘿嘿. 1. 相关目录/var/log/cloudera-scm-installer : 安装日志目录 ...

  8. 【转】分享II→IV FPGA本人的几个版本电源模块设计的方案

    很多人问我FPGA的电源怎么怎么着,当然也有人瞎忽悠乱设计,当然我的设计也不是很完美...这里把我当年第一次设计FPGA,到现在的电源方案,几个演变.分析的过程,给大家讲讲... (1)FPGA电源方 ...

  9. Hadoop完全分布式集群安装

    转载请注明原地址,谢谢! 本文目的是教大家配置Hadoop的完全分布式的集群,除了完全分布式还有两种分别是单节点和伪分布式部署.伪分布式只需要一台虚拟机,配置的东西也相对较少,大多用作代码调试,大家稍 ...

  10. Bull And Cows

    package cn.edu.xidian.sselab.hashtable; import java.util.HashMap;import java.util.Map;import java.ut ...