DBAtlas · Atlas d'exploitation des bases de données

circuit_breaking_exception: CircuitBreakingException[[parent] Data too large, data for [<...>] would be [...], which is larger than the limit of [...]] (données trop volumineuses : limite du circuit breaker dépassée)

Elasticsearch

Que signifie cette erreur ?

Une requête a été rejetée, car elle dépasserait la limite mémoire (heap) du circuit breaker. Elasticsearch arrête la requête en amont pour éviter que le nœud ne plante avec une OutOfMemoryError. Le breaker [parent] protège l'utilisation totale de la mémoire ; le breaker [fielddata] protège la mémoire fielddata des champs text.

Cause

Heap JVM insuffisant, agrégations très grandes/complexes, grands jeux de résultats, grosses requêtes bulk, fielddata chargé sur des champs text, ou nombreuses requêtes lourdes simultanées remplissant le heap. C'est généralement un symptôme de pression sur le heap.

Comment la corriger

Allégez les requêtes : réduisez la taille des agrégations, la taille des lots bulk et les champs renvoyés. Agrégez sur le sous-champ keyword (.keyword) plutôt que sur le fielddata des champs text. Augmentez le heap JVM (~50 % de la RAM du serveur, au plus ~31GB). Surveillez la pression sur le heap : GET _cat/nodes?v&h=name,heap.percent. Corrigez la cause racine (mémoire/requête) plutôt que de relever temporairement les limites des breakers. Vérifiez quel breaker s'est déclenché avec GET _nodes/stats/breaker.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur