kill -3将不生成heapdump和javacore文件
在java SDK 1.4.2 SR5及之后的版本中使用 kill -3将不生成heapdump和javacore文件
环境
产品:WebSphere Application Server
平台:AIX, Linux, Windows
软件版本:v5.1.1.x, v6.0.x
| 问题
从java SDK 1.4.2 SR5开始,之后的版本使用 kill -3不会生成heapdump和javacore文件。
| 解答
从 java SDK 1.4.2 SR5开始,关于生成heapdump和javacore,引入了一个新的特性去避免系统自动生成heapdump和javacore 造成操作系统文件系统空间被耗尽,这样在java SDK 1.4.2 SR5及之后的版本中,当使用 kill -3时也将不会产生heapdump和javacore文件。
这个新的特性可以允许设置相应的选项来控制java进程在收到相应的信号时最多生成多少个heapdump和javacore文件。要使用这个新的特性,需要首先在操作系统的环境中设置下面的变量:
export JAVA_DUMP_OPTS="ONANYSIGNAL(JAVADUMP[n],HEAPDUMP[m])"
其中,n 是最大的javacore生成的数目, m 是最大的heapdump生成的数目。
在设置了这个变量后,java进程在收到kill -3 (或其他的信号)时将会生成heapdump和javacore文件,文件的最大数目分别等于选项中的m和n的值,可以根据实际的需求设置合理的m和n的值。
例如:
在启动websphere之前,设置下面的环境变量:
export JAVA_DUMP_OPTS="ONANYSIGNAL(JAVADUMP[5],HEAPDUMP[5])"
这样在收到相应的信号的时候,将最大生成5个heapdump和javacore,之后将不会再生成heapdump和javacore文件。
注意:
如果设置了IBM_heapdump=true变量,将会生成一个额外的heapdump文件,这样heapdump的文件将会是n+1个,在Java SDK 1.4.2 SR7中将避免这个情况。 |
|
|