IBM Websphere培训——JVM相关参数配置和问题诊断

1.Websphere JVM相关问题诊断:

由JVM引起的Websphere问题主要有应用服务器宕机和性能下降,JVM相关问题的特征如下:

(1).Websphere应用服务器停止响应: a.Websphere服务器宕机。 b.Websphere进程挂起。 c.JVM内存溢出。 (2).性能下降:

JVM进程号(process Id)不停地改变。 2.诊断JVM相关问题所需文件: (1).核心文件(Core files): a.进程快照或者系统的核心文件。 b.完整的JVM内存快照等。

注意:文件非常庞大,需要ISA(IBM Support Assistant)的日志分析工具解析。 (2).javacore文件:

a.正在运行的java进程的快照。

b.Websphere应用服务器发生错误时自动生成的文件。 存储路径为:/profiles/。 (3).JVM详细的垃圾回收器日志。 (4).JVM堆快照。 3.JVM垃圾回收器日志:

(1).设置Websphere中JVM垃圾回收器步骤:

在Websphere管理控制窗口点击:Servers->Application

servers->->Java and Process Management ->Process Definition->Java Virtual Machine, 勾选” Verbose Garbage Collection ”复选框,重启Websphere即可。

(2).JVM详细的垃圾回收器日志写在系统错误日志文件中(native_stderr)。 (3).在产品发布以后,推荐将Websphere的JVM垃圾回收器日志打开,它消耗资源非常的少。

4.JVM关于堆的相关参数设置:

(1).JVM最大的堆内存大小(maximum heap, -Xmx):

设置合理的最大堆有助于JVM优化性能,最大堆越大,JVM垃圾回收器收集一次垃圾花费的时间越长;最大堆越小,JVM垃圾回收器运行很频繁。 合理的最大堆应该是稍微大于当程序运行稳定时所需的最大堆容量。 (2).JVM初始化堆内存大小(minimum heap,-Xms):

设置合理的最小堆可以提高Websphere应用服务器的启动时间。

最小堆太小,JVM可能在服务器启动重新过程不断调整重新设置最小堆,从而影响启动速度。

最小堆太大,垃圾回收器需要回收较大的内存空间,容易产生内存碎片。同时由于初始堆内存太大,分配堆内存花费的时间比较大,程序响应速度慢。 5.JVM垃圾回收器性能指标:

垃圾回收器是JVM中引起内存性能瓶颈的主要原因,JVM的垃圾回收器性能指标: (1).吞吐量(Throughput):

指JVM没有花费在垃圾回收器上的百分比,即JVM在处理程序运行所花费时间占整个JVM运行时间的百分比。

(2).暂停(Pauses):

指JVM垃圾回收器运行时间的百分比,即因为JVM垃圾回收器运行而暂停应用程序处理时间占整个JVM运行时间的百分比。

6.Websphere中JVM垃圾回收器的回收策略(GC policy): (1). –-Xgcpolicy:optthruput

让JVM尽可能花最多时间处理应用程序,尽量减少垃圾回收器的运行时间。 (2). –-Xgcpolicy:optavgpause

让JVM尽可能多回收垃圾,当不可预知的情况发生时,应用程序响应时间比较快。 (3). –-Xgcpolicy:gencon

适合于应用程序需要大量分配堆内存给短存活周期对象的情况,垃圾回收器使用分代复制算法,让垃圾回收器尽快回收已经死亡的年老代对象。 (4). –-Xgcpolicy:subpool

适合于应用程序在多个线程中频繁给大对象分配堆内存的情况。 7.通过JVM线程快照诊断进程挂起问题:

当怀疑JVM进程挂起时,以下的方法可以帮助诊断JVM进程挂起相关问题: (1).收集JVM线程快照或者JavaCore文件:

Websphere默认是打开的,也可以在命令行(linux)中通过”kill -3”向Websphere发送信号产生JVM线程快照和JavaCore相关文件。 (2).当进程挂起时,每个几分钟收集一下JVM线程快照:

当进程挂起产生时,需要每个几分钟收集一下JVM线程快照,以帮助分析进程内部的运行情况。

(3).手动或者通过ISA的线程分析器查看JVM线程快照文件:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4