• [Problema] OutOfMemory - Tip de la wiki no sirve

  • OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
Forum rules: Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
 #13506  by gab.espinoza
 
Hola a todos,

He descubierto esta maravilla de software que hace todo lo que necesito!!
Estoy muy entusiasmado con implantarlo, pero me he topado con algunos problemas, entre ellos este:

Error:
Code: Select all
java.lang.OutOfMemoryError: PermGen space
Entorno:
Windows 2003 Server R2 SP2
Memoria: 2GB
Procesador: Intel Core 2 Dúo E6550 @ 2.33GHz
OpenKM: OpenKM-5.1.8_JBoss-4.2.3.GA.zip
Usuarios concurrentes: Actualmente solo 1; una vez en producción: máximo 20.

run.bat
Code: Select all
@echo off
rem -------------------------------------------------------------------------
rem JBoss Bootstrap Script for Win32
rem -------------------------------------------------------------------------

rem $Id: run.bat 73584 2008-05-22 12:09:26Z dimitris@jboss.org $

@if not "%ECHO%" == ""  echo %ECHO%
@if "%OS%" == "Windows_NT"  setlocal

set DIRNAME=.\
if "%OS%" == "Windows_NT" set DIRNAME=%~dp0%
set PROGNAME=run.bat
if "%OS%" == "Windows_NT" set PROGNAME=%~nx0%

pushd %DIRNAME%..
set JBOSS_HOME=%CD%
popd

REM Add bin/native to the PATH if present
if exist "%JBOSS_HOME%\bin\native" set PATH=%JBOSS_HOME%\bin\native;%PATH%
if exist "%JBOSS_HOME%\bin\native" set JAVA_OPTS=%JAVA_OPTS% -Djava.library.path="%PATH%"

rem Find run.jar, or we can't continue

set RUNJAR=%JBOSS_HOME%\bin\run.jar
if exist "%RUNJAR%" goto FOUND_RUN_JAR
echo Could not locate %RUNJAR%. Please check that you are in the
echo bin directory when running this script.
goto END

:FOUND_RUN_JAR

if not "%JAVA_HOME%" == "" goto ADD_TOOLS

set JAVA=java

echo JAVA_HOME is not set.  Unexpected results may occur.
echo Set JAVA_HOME to the directory of your local JDK to avoid this message.
goto SKIP_TOOLS

:ADD_TOOLS

set JAVA=%JAVA_HOME%\bin\java

rem A full JDK with toos.jar is not required anymore since jboss web packages
rem the eclipse jdt compiler and javassist has its own internal compiler.
if not exist "%JAVA_HOME%\lib\tools.jar" goto SKIP_TOOLS

rem If exists, point to the JDK javac compiler in case the user wants to
rem later override the eclipse jdt compiler for compiling JSP pages.
set JAVAC_JAR=%JAVA_HOME%\lib\tools.jar

:SKIP_TOOLS

rem If JBOSS_CLASSPATH or JAVAC_JAR is empty, don't include it, as this will 
rem result in including the local directory in the classpath, which makes
rem error tracking harder.
if not "%JAVAC_JAR%" == "" set RUNJAR=%JAVAC_JAR%;%RUNJAR%
if "%JBOSS_CLASSPATH%" == "" set RUN_CLASSPATH=%RUNJAR%
if "%RUN_CLASSPATH%" == "" set RUN_CLASSPATH=%JBOSS_CLASSPATH%;%RUNJAR%

set JBOSS_CLASSPATH=%RUN_CLASSPATH%

rem Setup JBoss specific properties
set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% -Dfile.encoding=utf-8

rem Add -server to the JVM options, if supported
"%JAVA%" -server -version 2>&1 | findstr /I hotspot > nul
if not errorlevel == 1 (set JAVA_OPTS=%JAVA_OPTS% -server)

rem JVM memory allocation pool parameters. Modify as appropriate.
rem set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m
JAVA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m"

rem With Sun JVMs reduce the RMI GCs to once per hour
set JAVA_OPTS=%JAVA_OPTS% -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

rem JPDA options. Uncomment and modify as appropriate to enable remote debugging.
rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS%

rem Setup the java endorsed dirs
set JBOSS_ENDORSED_DIRS=%JBOSS_HOME%\lib\endorsed

echo ===============================================================================
echo.
echo   JBoss Bootstrap Environment
echo.
echo   JBOSS_HOME: %JBOSS_HOME%
echo.
echo   JAVA: %JAVA%
echo.
echo   JAVA_OPTS: %JAVA_OPTS%
echo.
echo   CLASSPATH: %JBOSS_CLASSPATH%
echo.
echo ===============================================================================
echo.

:RESTART
"%JAVA%" %JAVA_OPTS% ^
   -Djava.endorsed.dirs="%JBOSS_ENDORSED_DIRS%" ^
   -classpath "%JBOSS_CLASSPATH%" ^
   org.jboss.Main %* -b 0.0.0.0

if ERRORLEVEL 10 goto RESTART

:END
if "%NOPAUSE%" == "" pause

:END_NO_PAUSE
Línea de asignación de memoria:
Code: Select all
JAVA_OPTS="-Xms256m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256m"
Cualquier ayuda es bienvenida.

Gracias :D
 #13520  by jllort
 
Date cuenta que este windows tiene 2GB de ram y le estan asignando 2 al jboss ... no tiene buena pinta ... yo ampliaria el servidor a 4GB para este tipo de configuración. Lo del permGerm es correcto aunque es mas completo si pones:
Code: Select all
-XX:PermSize=128m -XX:MaxPermSize=256m -Djava.awt.headless=true -Dfile.encoding=utf-8
 #13521  by gab.espinoza
 
Gracias por la respuesta :D

Aumenté el máximo a 2048 en mi desesperación por que seguía fallando al haberlo aumentado a 512 y luego a 1024.

Intentaré esos parámetros que me diste, espero funcione bien. Pruebo y te cuento :)
Por cierto, puedo forzar que se caiga al abrir estadísticas en el módulo de administración.
 #13522  by gab.espinoza
 
Te comento que ya intenté lo que me recomendaste y no hubo caso:
Code: Select all
JAVA_OPTS=-XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true -Dfile.encoding=utf-8
Sigue ocurriendo. Logré abrir las estadísticas, pero una vez ahí, al intentar ir a otra parte del sitio, me lanzó el error :(
 #13525  by jllort
 
El problema es que con menos de 1024mb el jboss no te funcionarà mínimamente bien. Una cosa es un permGerm que se arregla con el permSize etc... y otra el out of memory, que implica darle mas recursos al jboss. 2GB de Ram es poco para un windows server y si le pones el jboss no le estamos haciendo ningun favor. Solo te puedo sugerir ampliar la memoria con 2GB mas ( en un linux con 2GB te funcionaria mejor, por que el consumo de recursos que hace el SO es mas respetuoso ).
 #13528  by gab.espinoza
 
La máquina donde estoy probando es una máquina de pruebas. Cuando pase a producción será en un Windows 2008 Server R2 con 16GB de RAM y 24 Cores....
Pero... si no logro estabilizarlo en mi maquina, no me darán el visto bueno para pasarlo a producción.
 #13537  by jllort
 
Que quieres montar exactamente ? o sea que volumen de repositorio tienes en mente. Por que no lo pruebas en un linux que te funcionará seguro con esta configuración.

Me gustaría darte alguna opción, pero tienes una máquina un poco justa para un Windows Server, a eso le sumas el jboss y no cuadra. Como decirlo, del sombrero del mago, veo difícil sacar conejos si antes no los has metido. La única opción para estabilizar esto es o bien ampliar memoria o bien esta máquina montarla en linux.

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.