• 【踩坑记录】Elasticsearch查询:circuit_breaking_exception异常解决方案


    项目场景:

    springboot中使用ES7查询一个月内的数据量趋势时出错。在开发线上正常,演示线时出现异常


    问题描述

    项目在演示线环境的时候,出现查询异常

    异常信息如下:

    1. org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=circuit_breaking_exception, reason=[parent] Data too large, data for [] would be [31741946644/29.5gb], which is larger than the limit of [31621696716/29.4gb], real usage: [31741945664/29.5gb], new bytes reserved: [980/980b], usages [request=0/0b, fielddata=896932/875.9kb, in_flight_requests=980/980b, model_inference=0/0b, accounting=89070922/84.9mb]]
    2.         at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:187)
    3.         at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:1911)
    4.         at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:1888)
    5.         at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1645)
    6.         at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1602)
    7.         at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1572)
    8.         at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:1088)

    原因分析:

    原因:ES默认的缓存设置是缓存区是只进不出的,一当缓存区不够时,就会抛出异常

    解决方案:

    1. API方式设置,无需重启ES

    1. PUT _cluster/settings
    2. {
    3. "persistent" : {
    4. "indices.breaker.fielddata.limit" : "40%"
    5. }
    6. }

    2. 设置elasticsearch.yml文件,然后重启ES

    1. indices.memory.index_buffer_size: 30%
    2. indices.recovery.max_bytes_per_sec: 30mb
    3. indices.fielddata.cache.size: 30%
    4. indices.breaker.fielddata.limit: 40%
    5. indices.breaker.request.limit: 40%
    6. indices.breaker.total.use_real_memory: false
    7. indices.breaker.total.limit: 70%

    配置完后,重新查询,正常

  • 相关阅读:
    windows提权
    【Linux环境】Linux常用命令记录汇总
    NetSuite Saved Search-当前库存快照查询报表
    maven笔记
    RandomAccessFile下载文件hash去重 和Mapreduce下载文件 --------桥接模式进行数据清理到
    ts和es6到底有哪些不同
    Unity Spine 指定导入新Spine动画的默认材质
    spring boot利用redis作为缓存
    渗透测试 | IP信息收集
    案例推荐|助力智慧城市,Pulsar Functions 的边缘物联网场景实践
  • 原文地址:https://blog.csdn.net/huang_550/article/details/139474079