我是靠谱客的博主 腼腆斑马,最近开发中收集的这篇文章主要介绍weblogic手动生成dump文件 linux命令,Weblogic HeapDump 配置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

5月份上了一个版本,可是好景不长,第一个星期宕机了一次,第二周的周一,发现宕机了两次,均是OOM,这个对于银行的生产环境来说,非常严重。所以需要尽快分析日志dump文件来分析,到底是什么原因。查找到原来是导出csv70W+导致,所以需要对相关代码进行更改。找到这篇文章,对解决weblogic OOM有所思路一般报OOM异常都是代码有问题,所以写代码一定要谨慎一些。

悲催的前个星期,生产环境的Weblogic连续两次OOM(OutofMemory)后宕机,不得不在礼拜日回去看log分析问题。

但是由于内存参数没有配置GC参数,没能生成当时宕机前的HeapDump文件。所以还是要配置上GC参数才能在下次查出问题根本。

配置内存参数方法,没找到在Weblogic console那里直接可以配置内存参数的方法,只能直接在bea/user_projects/domains/domain/bin/setDomainEnv.sh上增加

“-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps-XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak -Xloggc:$$.gc.log ” -XX之间用空格分隔

配置如下:

1364825279_7792.jpg

-XX:+PrintGCDetails: 用来跟踪系统GC的详细情况;

-Xloggc:$$.gc.log: 将每次GC事件的相关情况记录到一个文件中。

-XX:+PrintGCTimeStamps: 可与-XX:+PrintGC -XX:+PrintGCDetails混合使用输出形式:11.851:

[GC 98328K->93620K(130112K), 0.0082960 secs]

-XX:+HeapDumpOnOutOfMemoryError: JVM在出现OOM异常的时候Dump出内存映像文件

-XX:+HeapDumpOnCtrlBreak:表示可以通过 kill -3 pid 根据需要产生DUMP文件

但注意:

Oracle JVM的6.0版本去掉了-XX:+HeapDumpOnCtrlBreak参数,如果需要产生DUMP文件,请采用jmap命令,命令行格式如下:jmap -dump:format=b,file=managed1_heapdump.hprof

其中managed1_heapdump.hprof表示生成的DUMP文件名称,pid表示Java进程号。

产生的.hprof文件使用HeapAnalyzer工具,HeapAnalyzer是一款针对IBM JDK的内存文本镜像HeapDump的分析工具。

1364826992_8852.jpg

二、JAVACORE文件分析IBM Thread and Monitor Dump Analyzer for Java工具

启动工具C:javabinjava –Xmx200m –jar jca13.jar

java –Xmx500m –jar jca13.jar E:/javacore.20060228.171037.2084.txt output.html

直接生成output.html

Javacore 文件产生原因

? 自动生成

– IBMJVM

? OutOfMemory

? 手动生成

– Kill -3

Javacore文件格式

– TITLE 文件头部分

– GPINFO 文件头部分

– ENVINFO 文件头部分

– MEMINFO 内存管理信息

– LOCKS 锁信息

– THREADS 线程信息

– CLASSES 类信息

TITLE部分

? 记录了引起Javadump的基本事件,时间和文件的名字

TITLE subcomponent dump routine

Dump Event “user” (00004000) received

Date: 2011/04/02 at 00:56:01

Javacore filename: /soft/bea/user_projects/domains/omega/javacore.20110402.005601.34176.txt

GPINFO部分

? 主要显示与操作系统方面有关的信息

0SECTION GPINFO subcomponent dump routine

NULL ================================

2XHOSLEVEL OS Level : AIX 5.3

2XHCPUS Processors -

3XHCPUARCH Architecture : ppc64

3XHNUMCPUS How Many : 24

ENVINFO部分

? 显示在JRE级别的信息、应用服务器命令行启动信息及虚拟机的环境变量信息

ENVINFO subcomponent dump routine

J2RE 5.0 IBM J9 2.3 AIX ppc64-64 build j9vmap6423-20071007

VM build 20071004_14218_BHdSMr

JIT enabled - 20070820_1846ifx1_r8

Running as a standalone JVM

/usr/java5_64/bin/java -Xmx3512m -Xms3512m -Xmn2450m -XX:PermSize=128m -Xmxcl25000

Java Home Dir: /usr/java5_64/jre

Java DLL Dir: /usr/java5_64/jre/bin

Sys Classpath: /usr/java5_64/jre/lib/vm.jar;/usr/java5_64/jre/lib/core.jar;/usr/j

UserArgs:

-Xjcl:jclscar_23

-Dcom.ibm.oti.vm.bootstrap.library.path=/usr/java5_64/jre/bin

-Dsun.boot.library.path=/usr/java5_64/jre/bin

-Djava.library.path=/usr/java5_64/jre/bin:/usr/java5_64/jre/bin:/usr/java

-Djava.home=/usr/java5_64/jre

MEMINFO部分

? 显示内存管理分配的信息,包含堆的空闲空间、当前堆的大小、垃圾收集历史

MEMINFO subcomponent dump routine

Bytes of Heap Space Free: 7902f578

Bytes of Heap Space Allocated: db800000

Internal Memory

segment start alloc end type bytes

000000012F2DCCB0 00000001306CB8B0 00000001306DB8A4 00000001306DB8B0 01000040 10000

000000012F2DD7F0 0000000130664FB0 0000000130674FA0 0000000130674FB0 01000040 10000

000000012F2DD130 0000000130674FD0 0000000130684FBC 0000000130684FD0 01000040 10000

<<>>

GC History

00:56:01:541818000 GMT j9mm.65 - LocalGC end: rememberedsetoverflow=0 causedremembereds

00:56:01:510589000 GMT j9mm.64 - LocalGC start: globalcount=1003 scavengecount=3226 wea

00:56:01:510033000 GMT j9mm.63 - Set scavenger backout flag=false

LOCK 部分

? 显示的与锁有关的信息

LOCKS subcomponent dump routine

Monitor pool info:

Current total number of monitors: 2

Monitor Pool Dump (flat & inflated object-monitors):

sys_mon_t:0x00039B40 infl_mon_t: 0x00039B80:

[email protected]/004B22AC: Flat locked by “DeadLockThread 1”

(0x41DAB100), entry count 1

Waiting to enter:

“DeadLockThread 0” (0x41DAAD00)

sys_mon_t:0x00039B98 infl_mon_t: 0x00039BD8:

[email protected]/004B229C: Flat locked by “DeadLockThread 0”

(0x41DAAD00), entry count 1

Waiting to enter:

“DeadLockThread 1” (0x41DAB100)

THREADS 部分

? 显示了所有的Java线程和栈跟踪方面的信息

“Signal Dispatcher” TID:0x41509200, j9thread_t:0x0003659C, state:R,prio=5

(native thread ID:5820, native priority:0, native policy:SCHED_OTHER)

at com/ibm/misc/SignalDispatcher.waitForSignal(Native Method)

at com/ibm/misc/SignalDispatcher.run(SignalDispatcher.java:84)

在第一行中的属性是线程的名字、线程标识符、JVM数据结构地址、当前状态和Java优先级。

在第二行中的属性是本地操作系统的线程ID、本地操作系统的优先级及本地操作系统调试机制。

? 线程的状态可以是以下值:

? R - Runnable – 线程在运行状态

? CW - Condition Wait – 线程在等待状态,主要有以下原因引起的:

– 调用了 sleep()。

– 线程在IO方面出现了阻塞。

– 调用了 wait(),在等待通知。

– 通过调用join()使两个线程同步。

? MW – waiting for monitor entry 线程在等待锁。

? S – Suspended – 另一个线程暂停当前线程。

? Z – Zombie – 线程被杀掉。

? P – Parked – 线程终结但还没有回收。

? B – Blocked – 线程阻塞,它在等待获取锁

CLASSES 部分

? 在类部分包含了类加载的概要信息和加载的类

– Application 加载器(sun/misc/Launcher$AppClassLoader),它是extension加载器的子类.

– Extension 加载器 (sun/misc/Launcher$ExtClassLoader),它是bootstrap加载器的子类。

– Bootstrap 加载器,众所周知它是系统加载器。

CLASSES subcomponent dump routine

Classloader summaries

12345678: 1=primordial,2=extension,3=shareable,4=middleware,5=system,6=trusted,7=application,8=delegating

p—st– Loader System(0x50007498)

Number of loaded libraries 12

Number of loaded classes 3675

-x–st– Loader sun/misc/Launcher$ExtClassLoader(0x50018598), Parent none(0x00000000)

Number of loaded libraries 0

Number of loaded classes 29

—–ta- Loader sun/misc/Launcher$AppClassLoader(0x500234C0), Parent sun/misc/Launcher$ExtClassLoader(0x50018598)

Number of loaded libraries 3

Number of loaded classes 11051

《——省略n行——》

ClassLoader loaded classes

Loader System(0x50007498)

org/apache/xpath/objects/XStringForFSB(0x3E76F238)

[Ljavax/naming/Binding;(0x3E76FAC0)

《——省略n行——》

org/apache/xpath/functions/Function3Args$Arg2Owner(0x3E770CA0)

Loader sun/misc/Launcher$AppClassLoader(0x500234C0)

weblogic/j2ee/descriptor/RelationshipsBean(0x38265960)

《——省略n行——》

weblogic/application/descriptor/AbstractMunger$3(0x3827F278)

最后

以上就是腼腆斑马为你收集整理的weblogic手动生成dump文件 linux命令,Weblogic HeapDump 配置的全部内容,希望文章能够帮你解决weblogic手动生成dump文件 linux命令,Weblogic HeapDump 配置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部