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
Navigation
Print/export
Toolbox