Bonjour Camilia Spring,
Dans ce scénario, je recommande d’éviter d’augmenter directement la limite du parent circuit breaker comme solution principale, car le breaker est précisément conçu pour protéger la JVM contre une consommation mémoire excessive et les situations potentielles d’OutOfMemoryError. Commencez plutôt par analyser les patterns d’utilisation du heap et vérifiez que la taille du JVM heap est correctement dimensionnée par rapport à la charge du nœud, tout en laissant suffisamment de mémoire disponible pour le système d’exploitation et le filesystem cache.
Pour les workloads fortement orientés aggregation, il est généralement plus efficace d’optimiser les requêtes elles-mêmes en réduisant la cardinalité des agrégations, en limitant le nombre de buckets ou en découpant les requêtes volumineuses en plusieurs requêtes plus petites. Si la pression mémoire reste élevée après l’optimisation des requêtes, vous pouvez alors évaluer avec prudence le seuil du parent circuit breaker ainsi que les paramètres du JVM heap. Toute augmentation de ces limites devrait toutefois être validée par des tests de performance et un monitoring étroit de l’activité du Garbage Collection (GC).
Je recommande également de consulter les node statistics et les métriques des circuit breakers afin d’identifier quelles agrégations consomment le plus de mémoire et de déterminer si le problème est limité à certains index ou à certains patterns de requêtes. Dans la plupart des cas, ajuster conjointement le workload et l’allocation mémoire permet d’obtenir un résultat plus sûr et plus durable que de se reposer uniquement sur une augmentation des limites du breaker.
Si cette réponse vous est utile, n’hésitez pas à cliquer sur « Accept Answer » afin de confirmer qu’elle répond bien à votre problématique.
Jason