Configurer le service ESA pour utiliser un pool de mémoire

Document created by RSA Information Design and Development on Feb 3, 2017
Version 1Show Document
  • View in full screen mode
  

Cette rubrique indique aux administrateurs comment configurer le service ESA en vue d'utiliser un pool de mémoire.

 Un pool de mémoire est une implémentation personnalisée de la mémoire virtuelle pour les événements gérés par les règles dans ESA. Ainsi, les fonctionnalités des règles évoluent par ordre de grandeur. Lorsque vous souhaitez créer des règles qui couvrent une longue période ou qui sont très complexes, vous pouvez choisir d'utiliser un pool de mémoire pour gérer plus efficacement la mémoire. Lorsque vous utilisez un pool de mémoire, au lieu de conserver tous les événements en mémoire, ils peuvent être écrits sur le disque. Cela est pratique lorsqu'une règle existante est complexe ou étendue à une longue période, dans ce cas, un grand nombre d'événements doit être conservé en mémoire.

Vous pouvez configurer le pool de mémoire pour qu'il s'exécute en mode Non traitement par lots ou Traitement par lots :

  • Non traitement par lots. En mode Non traitement par lots, les événements sont écrits sur le disque au fur et à mesure qu'ils sont insérés dans le pool de mémoire. Pour configurer le mode Non traitement par lots, définissez l'attribut MapPoolBatchWriteSize sur 1. Le mode Non traitement par lots fournit une solution plus stable parce que chaque événement est traité séparément sans influer sur les performances de la mémoire.
  • Traitement par lots. En mode Traitement par lots, les événements sont regroupés en lots et ensuite écrits sur le disque. Pour configurer le mode Traitement par lots, définissez l'attribut de taille du lot MapPoolBatchWriteSize sur une valeur supérieure à 1. Le mode Traitement par lots donne de meilleures performances puisque l'activité du disque contenant les événements est optimisée.

Remarque : En cas de modification de ces paramètres, il faudra redémarrer le service ESA. Lorsque ESA redémarre, si des événements sont conservés par le pool de mémoire, ils seront ignorés au redémarrage. 

Attention : Bien que cette fonctionnalité puisse être très utile pour la gestion de la mémoire, elle peut avoir un impact sur le taux de traitement des événements du service ESA.  Les performances peuvent être affectées de 10 à 30 % en fonction de vos règles et paramètres de configuration.

Workflow

Le schéma suivant illustre le flux de données en utilisant le pool de mémoire pour le mode Traitement par lots :

  1. Les événements sont ajoutés au pool de mémoire et les références aux événements sont stockées dans le pool de mémoire.
  2. Les événements sont ensuite regroupés pour être envoyés vers le disque (en mode Non traitement par lots, cette étape est ignorée).
  3. Une fois que le lot a atteint le seuil, les événements sont écrits sur le disque (en mode Non traitement par lots, aucun seuil n'est nécessaire).
  4. Lorsque la règle EPL nécessite un événement qui a été écrit sur le disque, l'événement est envoyé à la mémoire cache et utilisé dans la règle EPL. 

Procédure

Pour configurer un pool de mémoire ESA, suivez les étapes ci-après : 

  1. Sous Administration > Services, sélectionnez votre service ESA, puis  > Vue > Explorer
  2. Sélectionnez CEP > EsperPool > Configuration.
  3. Saisissez des valeurs pour les champs suivants :
                                      
AttributsDescription :Configuration 
MapPoolPersistenceURIEmplacement de stockage du fichier pool de mémoire.

La valeur par défaut est /opt/RSA/ESA/pool/esperPool. RSA vous recommande de ne pas modifier la valeur par défaut.

 Si vous modifiez ce paramètre pour utiliser une partition différente, assurez-vous que la partition contient au moins 10 fois plus d'espace que la mémoire allouée pour le service ESA.

Attention : Si le pool de mémoire est en cours d'utilisation alors que ce chemin est modifié, vous devrez redémarrer ESA. Dans ce cas précis, ESA tient compte des événements stockés mais vous laisse les supprimer manuellement.

MapPoolEnableActivez ou désactivez le pool de mémoire.La valeur par défaut est False. Définissez la valeur sur True pour activer le pool de mémoire.  Lorsque vous activez ou désactivez le pool de mémoire, un redémarrage est nécessaire.
MapPoolFlushIntervalSecs

Intervalle de temps pour vider les événements sur le disque.  Par exemple, tout événement présent sur le moteur Esper plus de 15 minutes est systématiquement vidé sur le disque.

La valeur par défaut est 15 minutes. Une valeur inférieure garantit la stabilité du service ESA lorsque des EPL contiennent un grand nombre d'événements en mémoire.  Une plus grande valeur (supérieure à 30 minutes) est la garantie que seuls les événements pertinents sur une longue période sont écrits sur le disque. 

Remarque : En raison de la conception de la gestion de mémoire Java, quelquefois des événements non conservés par EPL peuvent être envoyés directement sur le disque.  Pour éviter que cela se produise, vous pouvez définir une valeur plus élevée pour MapPoolFlushIntervalSecs.

MapPoolBatchWriteSize

Indiquez la taille du lot (et si vous souhaitez utiliser le mode Traitement par lots). Les événements sont traités par lots au sein de groupes, puis transférés vers le disque.

Pour utiliser le mode Non traitement par lots, appliquez la valeur 1.  

Pour utiliser le mode Traitement par lots, définissez une valeur supérieure à 1.

La taille du lot par défaut est 100 000 événements. À la fin de l'intervalle de vidage, si la capacité de charge n'est pas atteinte, le lot expire en 30 secondes et tout le contenu du lot est écrit sur le disque sous forme de fichiers de pool de mémoire.

Une valeur plus petite pour la taille du lot (par exemple, 10 000 événements) garantit que lorsque les événements sont récupérés du disque, ils ne risquent pas d'affecter la mémoire, ce qui crée une plus grande stabilité. En revanche, une taille de lot plus importante (100 000 événements) réduit l'activité d'entrée et de sortie lors de l'écriture des événements sur le disque, ce qui peut créer de meilleures performances. 

MapPoolMinSizeTaille minimale du pool de stockage. Généralement, cette valeur est utilisée pour l'initialisation, donc aucune modification n'est nécessaire. La valeur par défaut est de 10 000 événements. Une valeur plus élevée permet d'augmenter les performances.  Une valeur plus faible garantit la stabilité du système. 
MapPool Persist TypeCe paramètre est en lecture seule, il permet d'afficher le type d'optimisation utilisé.  La valeur par défaut est RMSerialize

Remarque : L'efficacité de cette fonction dépend de votre environnement. Si vous écrivez des règles qui nécessitent un accès fréquent aux événements sur une période, cette fonction peut dégrader les performances avec ou sans amélioration minimale en termes d'évolutivité.

Remarque : Les fichiers de pool de mémoire sont supprimés lorsque tous les événements contenus dans le fichier du pool ne sont plus référencés par une règle EPL. 

Résultat

Pour une règle EPL simple, le service ESA améliore généralement la mémoire 8 à 9 fois plus.

You are here
Table of Contents > Procédures ESA supplémentaires > Configurer le service ESA pour utiliser un pool de mémoire

Attachments

    Outcomes