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
/tmp 目录大都是安装文件过程中会产生一些临时文件,安装的过程中会临时存放在那里,安装完成后系统会自动删除。他是系统安装时就生成和分配好的,不会有太大的空间。weblogic,需要的安装空间至少要1G,所以试着把它安装在/opt 目录下面吧,或者是在还不够空间 就安装在/home下了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)