Saltar al contenido

¿Cómo le doy a Jenkins más espacio de almacenamiento dinámico cuando se ejecuta como un demonio en Ubuntu?

Hola, tenemos la solución a lo que necesitas, continúa leyendo y la encontrarás más abajo.

Solución:

Hay dos tipos de OutOfMemoryError mensajes que puede encontrar mientras se ejecuta un trabajo de Jenkins:

  • java.lang.OutOfMemoryError: Heap space – esto significa que necesita aumentar la cantidad de espacio de almacenamiento dinámico asignado a Jenkins cuando se inicia el demonio.
  • java.lang.OutOfMemoryError: PermGen space – esto significa que necesita aumentar la cantidad de espacio de generación asignado para almacenar metadatos de objetos Java. Incrementando el valor de la -Xmx El parámetro no tendrá ningún efecto sobre este error.

En Ubuntu 12.04 LTS, descomente el JAVA_ARGS poniendo en la línea diez de /etc/default/jenkins:

  • Para agregar más espacio de almacenamiento dinámico de Java, aumente el valor de la -Xmx Parámetro Java. Eso establece el tamaño máximo del grupo de asignación de memoria (el montón de basura recolectada).
  • Para agregar más espacio PermGen, agregue el parámetro XX:MaxPermSize=512m (reemplazar 512 con otra cosa si quieres más. El montón de generación permanente contiene metainformación sobre las clases de usuario.

Por ejemplo, este extracto es del predeterminado /etc/default/jenkins después de una nueva instalación de Jenkins:

# arguments to pass to java
#JAVA_ARGS="-Xmx256m"

Así es como se vería si configura el espacio de almacenamiento dinámico en 1 GB:

# arguments to pass to java
JAVA_ARGS="-Xmx1048m"

Tenga cuidado de no establecer un tamaño de almacenamiento dinámico demasiado grande, ya que cualquier cosa que asigne reduce la cantidad de memoria disponible para el sistema operativo y otros programas, lo que podría causar una paginación excesiva (memoria intercambiada entre la RAM y el disco de intercambio, lo que ralentizará su sistema caído).

Si también estableces MaxPermSpacedebe agregar un espacio entre los parámetros):

# arguments to pass to java
JAVA_ARGS="-Xmx1048m -XX:MaxPermSize=512m"

Después de realizar un cambio, reinicie Jenkins correctamente desde la interfaz web de Jenkins, o fuerce un reinicio inmediato desde la línea de comandos con sudo /etc/init.d/jenkins restart.

Encontré el siguiente sitio útil para comprender los tamaños de montón de generación permanente y máxima de Java: http://www.freshblurbs.com/blog/2005/05/19/explaining-java-lang-outofmemoryerror-permgen-space.html.

Para CentOS, el directorio en el que se encuentra Jenkins.xml de forma predeterminada es /etc/sysconfig/ para jenkins-1.579-1.1

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx -XX:MaxPermSize="

Si está utilizando Ubuntu Server, primero instale el complemento de Monitoreo para ver cuánta memoria está usando Jenkins. Por ejemplo, esto es lo que vi después de instalarlo:

ingrese la descripción de la imagen aquí

Entonces, con el comando free -m, descubrí cuál era el tamaño de la memoria del servidor. En mi caso, 16Gb. Con esa información, abrí /etc/default/jenkins y cambiado:


JAVA_ARGS="-Djava.awt.headless=true"

a


JAVA_ARGS="-Xmx8384m -Djava.awt.headless=true"

Donde 8384 es 8Gb. Luego reinicié Jenkins con el comando sudo service jenkins restart y luego, después de activar el trabajo que estaba teniendo problemas de memoria, las cosas se veían mucho mejor y el trabajo podría completarse en esta ejecución y en las siguientes:

ingrese la descripción de la imagen aquí

Comentarios y valoraciones del artículo

Al final de todo puedes encontrar las notas de otros sys admins, tú asimismo tienes la habilidad mostrar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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