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

Según los requisitos de tráfico y procesamiento, es posible que debas cambiar la memoria del montón tamaño o tamaño de los metadatos de la clase para los nodos que ejecutan la nube privada basada en Java o los componentes de la solución.

En esta sección, también se proporcionan los tamaños de memoria de montón de Java predeterminados y recomendados. que el proceso para cambiar los valores predeterminados. Por último, en esta sección se describe cómo cambiar otros Configuración de JVM con archivos de propiedades.

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

En la siguiente tabla, se indican los tamaños de memoria de montón de Java predeterminados y recomendados para las aplicaciones basadas en Componentes de la nube privada:

Componente Nombre del archivo de propiedades Tamaño predeterminado
del 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 512 MB De 3 GB a 6 GB2
Router router.properties 512 MB 512 MB
Analytics
Servidor de Postgres postgres-server.properties 512 MB 512 MB
Servidor Qpid qpid-server.properties 512 MB De 2 GB a 4 GB
Administración
Servidor de administración management-server.properties 512 MB 512 MB
IU ui.properties 512 MB 512 MB
OpenLDAP 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 cuando se inicia. En la actualidad, corresponde a 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 Cómo cambiar el montón el tamaño de memoria.

2 Para los procesadores de mensajes, Apigee recomienda configurar el montón entre 3 y 6 GB. Aumenta el tamaño del montón a más de 6 GB solo después de realizar las pruebas de rendimiento.

Si el uso del montón se acerca al límite máximo durante tus 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 la Nube privada se implementan en Java. Porque no están basadas en Java, las apps que se ejecutan de forma nativa en la plataforma host no tienen tamaños de montón de Java configurables; sino que dependen del sistema host para obtener memoria y administración de posturas.

Para determinar la cantidad total de memoria que Apigee recomienda que asignes a tus instancias de VM componentes de un nodo, agregue los valores mencionados anteriormente para cada componente de ese nodo. Por ejemplo, que aloje los servidores de Postgres y Qpid, Apigee recomienda que tu memoria sea de entre 2.5 GB y 4.5 GB.

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

Cómo cambiar 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.

Si el archivo message-processor.properties no existe o si el archivo .properties correspondiente de algún componente de Edge sí no existen, crearlo y, luego, cambiar la propiedad del archivo a “apigee” usuario, como el siguiente ejemplo muestra:

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

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

En la siguiente tabla, se enumeran las propiedades que puedes editar para cambiar el tamaño de montón:

Propiedad Descripción
bin_setenv_min_mem

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

Esta configuración corresponde a la opción -Xms de Java.

bin_setenv_max_mem

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

Esta configuración corresponde a la opción -Xmx de Java.

bin_setenv_meta_space_size

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

Esta configuración corresponde a la opción -XX:MetaspaceSize de Java.

Cuando establezcas propiedades de tamaño de montón en un nodo, usa la función "m" sufijo para indicar megabytes, como que se muestra a continuación:

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

Después de configurar 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

Cómo cambiar otras propiedades de JVM

En el caso de la configuración de Java no controlada por las propiedades antes mencionadas, también puedes establecer la siguiente en el archivo de propiedades correspondiente para cualquier componente de Edge:

  • bin_setenv_ext_jvm_opts: Configura cualquier Java. propiedad no especificada por otras propiedades. Por ejemplo:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    Sin embargo, no uses bin_setenv_ext_jvm_opts para establece -Xms, -Xmx o -XX:MetaspaceSize, ya que estos valores son controlados por las propiedades antes mencionadas.

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