Seleccionar página

Solución error: “java.lang.OutOfMemoryError: unable to create new native thread.”

por | Jul 15, 2011 | GNU / Linux, Java, JBoss AS / JBoss EAP / WildFly

El mensaje de error es el siguiente : «java.lang.OutOfMemoryError: unable to create new native thread.»

Para solucionarlo hay que reducir el tamaño de pila (stack) utilizado, que es la que usan los threads.

Para reducir el tamaño de la pila en la JVM se puede poner la siguiente opción “-Xss64k” en el arranque.
Yo sugiero empezar con 64k, probar la aplicación y si da error(puede lanzar la siguiene exceptión java.lang.StackOverFlowError), incrementar el tamaño de la pila a 128k, o 256k, y seguir probando. El tamaño para la pila por defecto es de 8192k que es un rango muy amplio para test.

(Nota: para JBoss se suele recomendar 128k o 256k, aunque es mejor mirar la documentación para cada versión)

En linux es necesario ponerlo también a nivel de sistema operativo con el mismo valor que la JVM para obtener el mayor beneficio. Para hacer esto usa “ulimit -s “. Ej: “ulimit -s 128″

(Nota: El tamaño de pila se aplicac por usuario, asi que se tiene que modificar en el script de arranque del sistema, o editar el fichero “/etc/security/limits.conf” (en Debian/Ubuntu al menos).

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blog de Neodoo Microsystems
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles. Puedes encontrar más información en nuestra Política de privacidad y Política de cookies.