【发布时间】:2013-08-24 23:55:36
【问题描述】:
我无法打开 websphere application server v8.5 的管理控制台。日志报告 Java 堆空间和内存不足错误。我在网上搜索过,建议是增加 JVM 堆大小。但是,我现在应该如何做到这一点,即使管理控制台也不适合我呢?
有没有办法以某种方式释放堆空间?
【问题讨论】:
我无法打开 websphere application server v8.5 的管理控制台。日志报告 Java 堆空间和内存不足错误。我在网上搜索过,建议是增加 JVM 堆大小。但是,我现在应该如何做到这一点,即使管理控制台也不适合我呢?
有没有办法以某种方式释放堆空间?
【问题讨论】:
在这种情况下,您必须绕过管理控制台。如果您想这样做,只需编辑服务器的配置文件,即编辑该特定服务器的server.xml,无论是应用程序服务器进程还是部署管理器进程,具体取决于哪个进程遇到内存问题。
编辑以下属性:
jvmEntries debugArgs="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777" debugMode="false" disableJIT="false" genericJvmArguments="-Xquickstart" runHProf="false" verboseModeClass="false" **initialHeapSize**="512" **maximumHeapSize**="1024" verboseModeGarbageCollection="false" verboseModeJNI="false" xmi:id="JavaVirtualMachine_1183121908656"
server.xml 可以在这里找到:
/*IBM_ROOT_DIR*/WebSphere/WAS85/AppServer/profiles/*MyProfile*/config/cells/*MyCell*/nodes/*MyNode*/servers/*MyServer*/server.xml
server.xml 更新后只需重启服务器进程即可使用新的内存设置。
【讨论】:
jvmEntries 标记中,如上所示。
在您的 WebSphere 安装中搜索名为 server.xml 的文件。一般这个文件的位置如下:
<profilehome>/config/cells/<cellname>/nodes/<nodename>/servers/<servername>/server.xml
选择特定于您的服务器的server.xml 并对其进行编辑以添加/修改/删除元素<jvmEntries> 的属性initialHeapSize 和maximumHeapSize。这些属性的值是以 MB 为单位的堆大小。
例如:
<jvmEntries ... initialHeapSize="2048" maximumHeapSize="3072" ...>
...
</jvmEntries>
然后重启服务器。
【讨论】:
您需要重新启动 Websphere 配置文件以释放内存:
窗户:
cd WAS_home\profiles\profile_name\bin
stopServer.bat server_name
startServer.bat server_name
Unix:
cd WAS_home/profiles/profile_name/bin
./stopServer.sh server_name
./startServer.sh server_name
之后,您可以在 WAS 管理控制台中更改适当的设置。或者,您可以在重新启动之前编辑配置文件配置文件 server.xml。 当然,您需要确定 OutOfMemeory 错误的原因。很可能是此服务器上的某些应用程序发生内存泄漏。
【讨论】: