was java heap_Websphere产生大量javacore与heapdump文件的分析

2007年05月17日 星期四 23:03

项目中碰到的情况,居然产生了20多G,把硬盘占满、服务Down掉。原因可能:出现过多内存泄漏,或者分配过多大内存等。解决方法:

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网站上有详细阐述,特附如下:

Out of Memory (Java heap) specific MustGather informationSet up for enabling heap dump file generation:

For releases of V6.0:

To set the Environment Entries from the administrative console, select the following:

Servers > Application Servers > server_name > Java and Process Management > Process Definition > Environment Entries > New

Add the following Name and Value pairs:

Name

Value

IBM_HEAPDUMP

true

IBM_HEAP_DUMP

true

IBM_HEAPDUMPDIR

your_directory

IBM_HEAPDUMP_OUTOFMEMORY

true

IBM_JAVADUMP_OUTOFMEMORY

true

IBM_JAVA_HEAPDUMP_TEXT

true

3. Make sure that you save changes to the master configuration.

For release V5.1.1:

To set the Environment Entries from the administrative console, select the following:

Servers > Application Servers > server_name > Process Definition > Environment Entries > New

Add the following Name and Value pairs:

Name

Value

IBM_HEAPDUMP

true

IBM_HEAP_DUMP

true

IBM_HEAPDUMPDIR

your_directory

IBM_HEAPDUMP_OUTOFMEMORY

true

IBM_JAVADUMP_OUTOFMEMORY

true

IBM_JAVA_HEAPDUMP_TEXT

true

0818b9ca8b590ca3270a3433284dd417.png

Make sure that you save changes to the master configuration.

For releases of V5.0 and V5.1.0:

To set the Environment Entries from the administrative console, select the following:

Servers > Application Servers > server_name > Process Definition > Environment Entries > New

Add the following Name and Value pairs:

Name

Value

IBM_HEAPDUMP

true

IBM_HEAP_DUMP

true

IBM_HEAPDUMPDIR

your_directory

IBM_HEAPDUMP_OUTOFMEMORY

true

IBM_JAVADUMP_OUTOFMEMORY

true

0818b9ca8b590ca3270a3433284dd417.png

Make sure that you save changes to the master configuration.

For releases of V4.0:

To enable the heap dump, add the following lines to the top of the adminserver.bat file in the install_root/bin directory, after the call to setupCmdLine.bat:

call "%~dp0setupCmdLine.bat"

set IBM_HEAPDUMP=true

set IBM_HEAP_DUMP=true

set IBM_HEAPDUMP_OUTOFMEMORY=true

set IBM_JAVADUMP_OUTOFMEMORY=true

set IBM_HEAPDUMPDIR=directory_path

When you start the administrative server, use the modified adminserver.bat file from a command prompt instead of using the Services panel.

Notes:

The heap dump is written to the current directory, install_root/bin, or the directory specified by the IBM_HEAPDUMPDIR environment variable.

The file that is generated is called heapdumppid.time in internal format txt. This file can be very large; allow for at least the maximum heap size. If the maximum heap is set to 512 MB, allow for .5 GB for the dump.

Any version of WebSphere Application Server that is using the IBM JDK 1.3.1 SR5 or higher, and 1.4.X, will automatically generate heapdump and javacore files on an OutOfMemory condition. Adding the additional parameters will give you the option to manually generate heapdumps and also specify the directory in which to write the heapdump files. To manually generate heapdumps you will need to issue the WSADMIN command to generate javacore*.txt file. This will also produce a heapdump*.txt file.

When failure occurs:

This mechanism uses the same signal handler as javacore processing, so do not have DISABLE_JAVADUMP set as an environment variable.

Delete all Application Server and FFDC log files, if possible. Back them up, if needed.

Restart the Application Server.

Wait for the OutOfMemoryError condition to occur. This should cause the generation of a heapdump.

If you want to analyze the heapdump yourself, follow instructions to use IBM HeapAnalyzer tool for analyzing JVM heap usage. If you do not want to analyze this yourself, proceed to step 8.

Collect the following files:

For releases of V6.0:

The server.xml file located in the following directory:

install_root/profiles/profile_name/config/cells/cell_name/nodes/node_name/servers/server_name

Everything in the following directory:

install_root/profiles/profile_name/logs/server_name

Specifically, the following logs are needed:

systemErr

systemOut

native_stderr

native_stdout

heapdump*.txt or heapdump*.phd

javacore*.txt

Everything in the following directory:

install_root/profiles/profile_name/logs/ffdc

All documents requested For all releases below.

For releases of V5.0 and V5.1:

The server.xml file located in the following directory:

install_root/config/cells/nodes/node_name/servers/server_name

Specifically, the following logs are needed:

systemErr

systemOut

native_stderr

native_stdout

heapdump*.txt or heapdump*.phd

javacore*.txt

Everything from the following directory:

install_root/logs/server_name

Everything from the following directory:

install_root/logs/ffdc

All documents requested For all releases below.

For releases of V4.0 and V3.5:

A XMLConfig full export.

Everything from the following directory:

install_root/logs

Specifically, the following log files are needed:

stderr

stdout

tracefile

heapdump*.txt

javacore*.txt

All documents requested For all releases below.

All javacore*.txt files that were created when OutOfMemory conditions occurred. If javacore*.txt files were created, you can find them in the install_root, install_root/bin or in the configured working directory.

Include the Application Server systemErr, systemOut, native_stderr, and native_stdout logs, if they are located in a different directory.

List of all other software and version information on the system. For example, any databases, WebSphere MQ, and so forth.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值