tomcat和weblogic内存溢出的常见原因是什么 如何定位和解决

tomcat和weblogic内存溢出的常见原因是什么 如何定位和解决,第1张

内存溢出一般的原因是:

1. 程序有BUG,造成内存无法回收

2. 堆内存配置不够,需要扩充内存

3. 在64位大内存系统里使用了32位JDK,导致内存无法充分应用

可以通过监控JAVA堆内存或DUMP堆内存数据来分析问题。JDK中就有工具可以监控堆。

彻底解决Weblogic报出Java.lang.OutOfMemoryError: PermGen space

问题:

打开域下面的bin

目录(D:\Oracle\Middleware\user_projects\domains\base_domain\bin)

编辑setDomainEnv.cmd文件,将以下蓝色的地方设置内存大小改成自己需要的。

set WLS_HOME=%WL_HOME%\server

if "%JAVA_VENDOR%"=="Sun" ( set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) else (

set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m

set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m )

set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%

set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%

if "%JAVA_USE_64BIT%"=="true" (

set MEM_ARGS=%MEM_ARGS_64BIT% ) else (

set MEM_ARGS=%MEM_ARGS_32BIT% )

set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m

set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m

if "%JAVA_USE_64BIT%"=="true" (

set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT% ) else (

set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT% )

set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m

set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m

我的修改后如下:

set WLS_HOME=%WL_HOME%\server

if "%JAVA_VENDOR%"=="Sun" (

set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m

set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) else (

set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m

set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m )

set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%

set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%

if "%JAVA_USE_64BIT%"=="true" (

set MEM_ARGS=%MEM_ARGS_64BIT% ) else (

set MEM_ARGS=%MEM_ARGS_32BIT% )

set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m

set MEM_PERM_SIZE_32BIT=-XX:PermSize=512m

if "%JAVA_USE_64BIT%"=="true" (

set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT% ) else (

set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT% )

set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m

set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=1024m

注:暂时解决内存溢出问题在D:\Oracle\Middleware\wlserver_10.3\common\bin\commEnv.sh中配置

MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m"

-Xms:内存初始值

-Xmx:内存最大值(不要超过内存的80%)

MaxPermSize:PermGen(Class和Meta存放区域)区域内存最大值。

可调整为:

MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m"

-XX:MaxPermSize改为256或512


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7683070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存