Razón: los siguientes son comunes:
1. La cantidad de datos cargados en la memoria es demasiado grande, como tomar demasiados datos de la base de datos a la vez;
2. Hay referencias a los objetos en la clase de recolección, y no se eliminan después de su uso, de modo que el JVM no se puede reciclar;
3. Hay bucles muertos en el código o bucles que producen demasiadas repeticiones;
4. Errores en el software de terceros utilizados;
5. El valor de memoria del parámetro de inicio se establece demasiado pequeño;
Solicitudes de error comunes:
1.Tomcat: java.lang.OUTOFMemoryError: espacio de Permgen
2.Tomcat: java.lang.OUTOFMemoryError: Java Heap Space
3. VeBlogic: causa raíz de ServletException java.lang.OUTOFMemoryError
4.Resin: java.lang.outOfMemoryError
5.Java:Java.Lang.OUTOFMemoryError
resolver:
1. Solución al error solicitado por el servidor de aplicaciones: configure el valor de memoria del parámetro de inicio para que sea lo suficientemente grande.
2. Soluciones al error causado por el código Java: Centrarse en los siguientes puntos:
1) Verifique si hay bucles muertos o llamadas recursivas en el código.
2) Verifique si hay un bucle grande que produce repetidamente nuevas entidades de objetos.
3) Verifique si hay una consulta que ha obtenido todos los datos en la consulta de la base de datos. En términos generales, si toma 100,000 registros en la memoria a la vez, puede causar desbordamiento de memoria. Este problema está bastante oculto. Antes de conectarse, había menos datos en la base de datos y no fue fácil tener problemas. Después de conectarse, había más datos en la base de datos, y una sola consulta podría causar desbordamiento de memoria. Por lo tanto, intente usar consultas de bases de datos para consultar.
4) Compruebe si los objetos de recopilación como la lista, MAP no se han borrado después de su uso. Los objetos de recopilación como la lista y el mapa siempre tendrán referencias a los objetos, haciendo que estos objetos no puedan ser reciclados por GC.
Caso:
1. Cuando Hibernate consulta datos, consulta demasiados datos al mismo tiempo. Más tarde, el código en esta parte se ajusta, y solo la cantidad especificada de datos se recupera a la vez, resolviendo con éxito el problema. 2. Al hacer pruebas de estrés, aparece OutOfMemoryError y se encuentra que el recurso de la sesión no se ha publicado. Es mejor lanzar el recurso de la sesión a través del método Invalidate () de la sesión.
3. Aparece un bucle muerto en el programa.
4. OutOfMemoryError aparece cuando el TomCat se implementa y se ejecuta, y el valor del parámetro de memoria se incrementa para resolver este problema.
java.lang.OutofMemoryError en Tomcat: Java Heap Space Exception Handling
1. Tamaño del montón La configuración del montón JVM se refiere a la configuración del espacio de memoria que el JVM puede provisar durante la operación del programa Java. Cuando se inicia el JVM, establecerá automáticamente el valor del tamaño del montón. Su espacio inicial (es decir, -xms) es 1/64 de memoria física, y el espacio máximo (-xmx) es 1/4 de memoria física. Puede usar -xmn -xms -xmx y otras opciones proporcionadas por el JVM para configurarlo. El tamaño del tamaño del montón es la suma de la generación joven y la generación titular. Consejo: Este mensaje de excepción se enviará si el 98% del tiempo se usa para GC y el tamaño del montón disponible es inferior al 2%. Consejo: El tamaño máximo del montón no debe exceder el 80% de la memoria física disponible. En general, establezca las opciones -xms y -xmx a las mismas, mientras que -xmn es 1/4 del valor -xmx.
2. Solución: Establezca manualmente el tamaño del montón y modifique tomcat_home/bin/catalina.sh Agregue la siguiente línea a "echo" usando catalina_base: $ catalina_base "": java_opts = " -servidor -xms800m -xmx800m -xx: maxnewsize = 256m"
java.lang.OUTOFMemoryError: Manejo de excepciones de espacio de Permgen en Tomcat
1. Este trozo de memoria está almacenado principalmente por el JVM. La clase se colocará en el espacio de Permgen cuando se cargue. Es diferente del área del montón donde se almacena la instancia de clase (instancia). GC (recolección de basura) no limpiará el espacio de Permgen durante el tiempo de ejecución del programa principal. Por lo tanto, si hay muchas clases en su aplicación, es muy probable que ocurra un error de espacio de Permgen. Este error es común cuando el servidor web precompila JSP. Si usa una gran cantidad de frascos de terceros en su aplicación web, el tamaño excede el tamaño predeterminado de JVM (4m), entonces se generará este mensaje de error.
Solución: Establezca manualmente el tamaño maxPermsize y modifique tomcat_home/bin/catalina.sh Agregue la siguiente línea a "echo" usando catalina_base: $ catalina_base "": java_opts = " -servidor -xx: permSize = 64m -xx: maxpersize = 128m recomendación: Mover el mismo archivo jar de tercer party a the tomcat/liB Director para lograr el propósito de reducir el uso repetido de la memoria de los documentos JAR.
Java.lang.OutofMemoryError Manejo de excepciones en Weblogic
Solicitud de error: "Causa raíz de ErvletException java.lang.OUTOFMemoryError"
Solución: Ajuste los parámetros en commenv en bea/weblogic/común: Sun si "%production_mode%" == "true" goto sun_prod_mode set java_vm = -client set mem_args = -xms256m -xmx512m -xx: : sun_prod_mode set java_vm = -server set mem_args = -xms256m -xmx512m -xx: maxpermsize = 256m goto continúa
java.lang.outofMemoryError Cuando Eclipse ejecuta JBoss: Permgen Space Exception Handling
Cuando se ejecuta JBoss en Eclipse, si lleva demasiado tiempo, a veces java.lang.OUTOFMemoryError: error de espacio de Permgen. Aquí hay una solución para ti:
1) Haga clic en la flecha pequeña al lado del icono de depuración;
2) haga clic en el elemento del menú "Configuraciones de depuración ...";
3) Seleccione "JBoss V4.2 en Localhost" bajo el árbol "Servidor genérico" a la izquierda;
4) Haga clic en la pestaña "Argumentos" a la derecha y agréguela en "VM Argumentos":
-Dprogram.name = run.bat -djava.endorsed.dirs = "d:/jboss405/bin /../ lib/endorsed" -xms128m -xmx512m -xx: PermSize = 64m -xx: maxPermizize = 256m
5) Si ejecuta JBoss en el modo de línea de comando o hace clic directamente en "Run.bat", debe modificar las opciones JVM en el archivo bin/run.conf, busque el java_opts = " -xms128m -xmx512m ..." párrafo y luego agregue "-xx: permSize = 64m -xx: maxpermsize = 256m" al final. Guardarlo está bien.
6) Nota: Los números 128, 512, 64 y 256 se pueden ajustar de acuerdo con la configuración de su máquina, y luego haga clic en "Aplicar".
Java.lang.OutofMemoryError Manejo de excepciones bajo resina
Razón: este error ocurre porque la memoria física JVM es demasiado pequeña. La máquina virtual Java predeterminada tiene una memoria máxima de solo 64 megabytes, lo que puede no ser un problema durante el desarrollo y la depuración, pero está lejos de satisfacer las necesidades en entornos de aplicación reales a menos que su aplicación sea muy pequeña y no tenga acceso. De lo contrario, puede encontrar un error en el paquete java.lang.outOfMemoryError después de que el programa se ejecute por un período de tiempo. Por lo tanto, necesitamos aumentar el tamaño de la memoria de la máquina virtual disponible para el depósito.
Solución: Modifique la opción Args en /usr/local/resin/bin/httpd.sh para agregar parámetros -xms (memoria inicial) y -xmx (se puede usar el tamaño máximo de la memoria) que se puede usar para limitar el uso de memoria física de la JVM. Por ejemplo: después de configurar args = " -xms128m -xmx256m", la memoria física inicial de JVM es de 128 m, y la memoria física máxima se puede usar es de 256 m. El administrador del sistema debe establecer estos dos valores de acuerdo con la situación real del servidor.
Lo anterior es el contenido completo de la solución perfecta para el problema de manejo de errores de java.lang.outOfMemoryError traído a usted. Espero que todos apoyen a Wulin.com ~