Cómo modificar la configuración de la memoria en Java

Según tus requisitos de tráfico y procesamiento, es posible que debas cambiar el tamaño de la memoria de montón o el tamaño de los metadatos de clase para tus nodos que ejecutan componentes de Private Cloud basados en Java.

En esta sección, se proporcionan los tamaños de memoria de montón de Java predeterminados y recomendados, así como el proceso para cambiar los valores predeterminados. Por último, en esta sección, se describe cómo cambiar otros parámetros de configuración de la JVM con archivos de propiedades.

Tamaños de memoria de montón predeterminados y recomendados

En la siguiente tabla, se enumeran los tamaños de memoria de montón de Java predeterminados y recomendados para los componentes de nube privada basados en Java:

Componente Nombre del archivo de propiedades Predeterminado
Tamaño de montón
Tamaño de montón
recomendado
Tiempo de ejecución
Cassandra N/A Configurado automáticamente1 Configurado automáticamente1
Message Processor message‑processor.properties 512MB 3GB - 6GB2
Router router.properties 512MB 512MB
Analytics
Servidor de Postgres postgres‑server.properties 512MB 512MB
Servidor de Qpid qpid‑server.properties 512MB 2GB - 4GB
Administración
Servidor de administración management‑server.properties 512MB 512MB
Nueva IU de Edge (edge-management-ui) N/A Aplicación nativa3 Aplicación nativa3
SymasLDAP N/A Aplicación nativa3 Aplicación nativa3
Zookeeper zookeeper.properties 2,048 MB 2,048 MB
Notas

1 Cassandra calcula de forma dinámica el tamaño máximo de montón cuando se inicia. Actualmente, es la mitad de la memoria total del sistema, con un máximo de 8,192 MB. Para obtener información sobre cómo configurar el tamaño de montón, consulta Cambia el tamaño de la memoria de montón.

2 Para Message Processors, Apigee recomienda que configures el tamaño de montón entre 3 GB y 6 GB. Aumenta el tamaño de montón más allá de los 6 GB solo después de realizar pruebas de rendimiento.

Si el uso de montón se acerca al límite máximo durante las pruebas de rendimiento, aumenta el límite máximo. Para obtener información sobre cómo configurar el tamaño de montón, consulta Cambia el tamaño de la memoria de montón.

3 No todos los componentes de Private Cloud se implementan en Java. Debido a que no están basados en Java, las apps que se ejecutan de forma nativa en la plataforma host no tienen tamaños de montón de Java configurables; en cambio, dependen del sistema host para la administración de la memoria.

Para determinar la cantidad de memoria total que Apigee recomienda asignar a tus componentes basados en Java en un nodo, agrega los valores que se indican arriba para cada componente en ese nodo. Por ejemplo, si tu nodo aloja los servidores de Postgres y Qpid, Apigee recomienda que tu asignación de memoria combinada esté entre 2.5 GB y 4.5 GB.

Para obtener una lista del hardware requerido (como la RAM), consulta Requisitos de instalación.

Cambia los tamaños de la memoria de montón

Para cambiar la configuración de la memoria de montón, edita el archivo de propiedades del componente. Por ejemplo, para Message Processor, edita el /opt/apigee/customer/application/message-processor.properties archivo.

Si el archivo message-processor.properties no existe o si no existe el archivo .properties correspondiente para cualquier componente de Edge, créalo y, luego, cambia la propiedad del archivo al usuario "apigee", como se muestra en el siguiente ejemplo:

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

Si el componente está instalado en varias máquinas, como Message Processor, entonces debes editar el archivo de propiedades en todas las máquinas que alojan el componente.

En la siguiente tabla, se enumeran las propiedades que editas para cambiar los tamaños de montón:

Propiedad Descripción
bin_setenv_min_mem

El tamaño mínimo de montón. El valor predeterminado se basa en los valores que se indican en Tamaños de memoria de montón predeterminados y recomendados.

Este parámetro de configuración corresponde a la opción -Xms de Java.

bin_setenv_max_mem

El tamaño máximo de montón. El valor predeterminado se basa en los valores que se indican en Tamaños de memoria de montón predeterminados y recomendados.

Este parámetro de configuración corresponde a la opción -Xmx de Java.

bin_setenv_meta_space_size

El tamaño predeterminado de los metadatos de clase. El valor predeterminado se establece en el valor de bin_setenv_max_permsize, que es de 128 MB de forma predeterminada. En Message Processor, Apigee recomienda que establezcas este valor en 256 MB o 512 MB, según tu tráfico.

Este parámetro de configuración corresponde a la opción -XX:MetaspaceSize de Java.

Cuando establezcas propiedades de tamaño de montón en un nodo, usa el sufijo "m" para indicar megabytes, como se muestra en el siguiente ejemplo:

bin_setenv_min_mem=4500m
bin_setenv_max_mem=4500m
bin_setenv_meta_space_size=1024m

Después de establecer los valores en el archivo de propiedades, reinicia el componente:

/opt/apigee/apigee-service/bin/apigee-service component restart

Por ejemplo:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Cambia otras propiedades de la JVM

Para los parámetros de configuración de Java que no están controlados por las propiedades mencionadas anteriormente, también puedes establecer lo siguiente en el archivo de propiedades correspondiente para cualquier componente de Edge:

  • bin_setenv_ext_jvm_opts: Establece cualquier propiedad de Java que no se especifique con otras propiedades. Por ejemplo:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    Sin embargo, no uses bin_setenv_ext_jvm_opts para establecer -Xms, -Xmx o -XX:MetaspaceSize, ya que estos valores están controlados por las propiedades mencionadas anteriormente.

Para obtener sugerencias adicionales sobre la configuración de la memoria para los componentes de nube privada, consulta este artículo en los foros de Edge.