Configuración de ESA: Configurar ESA para que use un pool de memoria

Document created by RSA Information Design and Development on Apr 27, 2018
Version 1Show Document
  • View in full screen mode
 

Este procedimiento solo se aplica a las reglas de correlación de ESA.

Los administradores pueden configurar ESA para que use un pool de memoria. Un pool de memoria es una implementación personalizada de memoria virtual para eventos que mantienen las reglas en ESA. Esto ayuda a escalar la funcionalidad de las reglas en un orden de magnitud. Cuando desee crear reglas que abarquen un amplio intervalo de tiempo o que sean muy complejas, se recomienda usar un pool de memoria para manejar la memoria de manera más eficiente. Cuando utiliza un pool de memoria, en lugar de que todos los eventos estén en la memoria, se pueden escribir en el disco. Esto resulta útil porque cuando existe una regla que es compleja o que abarca un intervalo de tiempo prolongado, se debe mantener una gran cantidad de eventos en la memoria.

Puede configurar el pool de memoria para que se ejecute en un modo por lotes o no por lotes:

  • Modo no por lotes. En el modo no por lotes, los eventos se escriben en disco a medida que ingresan al pool de memoria. Para configurar el modo no por lotes, establezca el atributo MapPoolBatchWriteSize en 1. El modo no por lotes ofrece una solución más estable debido a que cada evento se descarga y se recupera por separado sin crear incrementos repentinos de memoria.
  • Modo por lotes. En el modo por lotes, los eventos se agrupan en lotes y, a continuación, se escriben en el disco. Para configurar el modo por lotes, establezca el atributo de tamaño de lote MapPoolBatchWriteSize en un valor mayor que 1. El modo por lotes ofrece un mejor rendimiento, ya que se optimiza la actividad del disco para descargar eventos en él.

Nota: Todos los cambios en estos ajustes requerirán el reinicio de ESA. Tras el reinicio de ESA, si el pool de memoria está manteniendo eventos, estos se descartarán. 

Precaución: Si bien esta función puede ser muy útil en la administración de la memoria, puede afectar la velocidad de procesamiento de eventos de ESA.  Puede haber un impacto en el rendimiento de entre el 10 y el 30 % según las reglas y los ajustes de configuración.

Flujo de trabajo

En el siguiente diagrama se muestra el flujo de datos que usa el pool de memoria para el modo por lotes.

Diagrama en que se muestra el flujo de datos que usa el pool de memoria para el modo por lotes

  1. Los eventos se agregan en el pool de memoria, donde también se almacenan las referencias a los eventos.
  2. A continuación, los eventos se agrupan en lotes para su envío al disco (en el modo no por lotes, este paso se omite).
  3. Una vez que el lote alcanza el umbral, los eventos se escriben en el disco (en el modo no por lotes, no se requiere ningún umbral).
  4. Cuando el EPL requiere un evento que se escribió en el disco, este se envía a la caché y se usa en la regla de EPL. 

Procedimiento

Realice los siguientes pasos para configurar un pool de memoria de ESA. 

  1. Vaya a ADMIN > Servicios, seleccione el servicio ESA y elija Ícono Acciones > Ver > Explorar
  2. Seleccione CEP > EsperPool > Configuración.
  3. Ingrese valores en los siguientes campos:
                                      
AtributoDescripciónConfiguración 
MapPoolPersistenceURIUbicación para almacenar el archivo de pool de memoria.

El valor predeterminado es /opt/rsa/esa/pool/esperPool. RSA recomienda no modificar el valor predeterminado.

 Si modifica esta configuración para utilizar una partición diferente, asegúrese de que la partición tenga al menos 10 veces más espacio que la memoria asignada para ESA.

Precaución: Si el pool de memoria está en uso mientras se cambia esta ruta, se requiere un reinicio de ESA. Cuando esto ocurre, ESA no descarta los eventos almacenados y usted debe depurarlos manualmente.

MapPoolEnableHabilite o deshabilite el pool de memoria.El valor predeterminado es false. Establezca el valor en true para habilitar el pool de memoria.  Cuando habilita o deshabilita el pool de memoria, se requiere un reinicio.
MapPoolFlushIntervalSecs

Intervalo de tiempo para vaciar los eventos en el disco.  Por ejemplo, cualquier evento que se mantiene en Esper durante más de 15 minutos se vacía al disco.

El valor predeterminado es 15 minutos. Un valor inferior garantiza la estabilidad de ESA cuando hay EPL que mantienen una gran cantidad de eventos en la memoria.  Un valor mayor (superior a 30 minutos) garantiza que solo los eventos pertinentes que se requieren durante un período más prolongado se vacían en el disco. 

Nota: Debido al diseño de la administración de memoria de Java, en ocasiones, eventos que EPL no mantiene se pueden enviar al disco.  Para impedir que esto ocurra, es posible establecer un valor mayor para MapPoolFlushIntervalSecs.

MapPoolBatchWriteSize

Especifique el tamaño de lote (y si se desea usar el modo por lotes). Los eventos se agrupan en lotes y se vacían en el disco.

Para usar el modo no por lotes, configure este valor en 1.  

Para usar el modo por lotes, configure un valor mayor que 1.

El tamaño del lote predeterminado es 100,000 eventos. Al final del intervalo de vaciado, si no se alcanza la capacidad del lote, el lote vence en 30 segundos y todo su contenido se escribe en el disco como archivos del pool de memoria.

Un valor menor para el tamaño del lote (por ejemplo, 10,000 eventos) garantiza que, cuando se obtienen eventos desde el disco, no se genera un riesgo de crecimiento excesivo de la memoria, lo cual crea mayor estabilidad. Sin embargo, con un tamaño mayor del lote (100,000 eventos), se minimiza la actividad de entrada/salida cuando se escriben eventos en el disco, lo cual puede crear un mejor rendimiento. 

MapPoolMinSizeTamaño mínimo del pool de memoria. Este valor se utiliza para la inicialización y generalmente no requiere edición. El valor predeterminado es 10,000 eventos. Un valor mayor puede aumentar el rendimiento.  Un valor menor garantiza la estabilidad del sistema. 
MapPoolPersistTypeEste es un parámetro de solo vista que muestra el tipo de optimización utilizado.  El valor predeterminado es RMSerialize

Nota: La eficacia de esta característica depende de su ambiente. Si escribe reglas que requieren acceso frecuente de eventos durante un período, esta característica puede degradar el rendimiento con una mejora nula o mínima de la escalabilidad.

Los archivos del pool de memoria se eliminan cuando un EPL deja de hacer referencia a todos los eventos que se mantienen en el archivo del pool. 

Resultado

Para una regla de EPL simple, ESA suele optimizar la memoria aproximadamente entre ocho y nueve veces.

You are here
Table of Contents > Procedimientos adicionales de reglas de correlación de ESA > Configurar ESA para que use un pool de memoria

Attachments

    Outcomes