Đây là cơ chế bảo vệ đang làm đúng việc của nó: Elasticsearch từ chối request để tránh OOM cả node. Nâng ngưỡng breaker là phản ứng sai — nó chỉ đổi một lỗi rõ ràng thành một lần node chết.
Đọc message để biết breaker nào nổ:
[parent] Data too large, data for [<http_request>] would be [31.2gb]/[30.6gb]Các nguyên nhân gốc theo tần suất:
1. Aggregation quá nặng — terms với size: 100000, hoặc lồng nhiều tầng làm số bucket bùng nổ.
2. Bulk batch quá lớn hoặc quá nhiều bulk chạy song song.
3. fielddata bật trên field text — nạp cả field lên heap.
4. Quá nhiều shard trên một node — heap bị chiếm bởi overhead của shard.
Xử lý: giảm size của aggregation, dùng composite agg để phân trang bucket thay vì lấy hết một lần, giảm batch size, và rà lại số shard.
Có thể xem breaker đang giữ bao nhiêu bằng GET /_nodes/stats/breaker, và dùng GET /_nodes/stats/jvm để xác nhận vấn đề là heap thật chứ không phải một request cá biệt.