Valor incorrecto en el tamaño máximo de la memoria del heap para la máquina virtual de Java
Problema
A pesar de que los nodos cuentan con el entorno de Oracle Java instalado no aparecen reportados en el pool de nodos que permiten ejecutar trabajos del universo de Java. Esta verificación se realiza con el siguiente comando.
# condor_status -java
Explicación
Aparentemente existe un bug que evita que la configuración de Condor interactúe correctamente con la máquina virtual de Oracle.
Para verificar que este sea el problema realice las siguientes verificaciones.
Identificar la JVM utilizada
Determinar cual es la máquina virtual de Java que está utilizando Condor.
# condor_config_val JAVA /usr/bin/java # ls -l /usr/bin/java lrwxrwxrwx 1 root root 26 Jun 13 11:43 /usr/bin/java -> /usr/java/default/bin/java
Deteminar la versión de la máquina virtual de Java.
# /usr/bin/java -version java version “1.6.0_20″ Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
Determinar el tamaño de la memoria del heap
# condor_config_val JAVA_MAXHEAP_ARGUMENT -Xmx1024m
Verificar la configuración de la máquina virtual de Java
# condor_starter -classad CondorVersion = “$CondorVersion: 7.4.2 Mar 29 2010 BuildID: 227044 $” IsDaemonCore = True HasFileTransfer = True HasPerFileEncryption = True HasReconnect = True HasMPI = True HasTDP = True HasJobDeferral = True HasJICLocalConfig = True HasJICLocalStdin = True Invalid maximum heap size: -Xmx1024m246m ^^^^^^^^^ Could not create the Java virtual machine. HasVM = True
Nótese como el valor máximo de la memoria del heap reportado por Condor (-Xmx1024m246m) es diferente al especificado en la configuración (-Xmx1024m).
Solución
Reemplazar la definión de la variable JAVA_MAXHEAP_ARGUMENT con las siguientes variables.
# vi /opt/condor/current/etc/condor_config.local # First set JAVA_MAXHEAP_ARGUMENT to null, to disable the default of max RAM JAVA_MAXHEAP_ARGUMENT = # Now set the argument with the Sun-specific maximum allowable value JAVA_EXTRA_ARGUMENTS = -Xmx1024m
Ajuste el valor de memoria (MB) a asignársele al heap en el parámetro JAVA_EXTRA_ARGUMENTS según sus requerimientos.
# condor_reconfig c-head c-wn1 c-wn2 Sent “Reconfig” command to master c-head.micluster.com Sent “Reconfig” command to master c-wn1.micluster.com Sent “Reconfig” command to master c-wn2.micluster.com