解决ES Data too large问题

问题描述:

最近搭建ELK测试系统,运行一段时间后,Kibana无法连接,并且报以下错误:

[parent] Data too large, data for [<http_request>] would be [1027562168/979.9mb], which is larger than the limit of [1020054732/972.7mb], real usage: [1027562168/979.9mb], new bytes reserved: [0/0b], usages [request=0/0b, fielddata=82993/81kb, in_flight_requests=0/0b, model_inference=0/0b, accounting=10862660/10.3mb]

问题解决过程:

网上查资料,认定是ES字段内存分配过小,按照网上方案修改字段内存分配:

PUT /_cluster/settings
{
  "persistent": {
    "indices.breaker.fielddata.limit": "60%"
  }
} 

执行结果:无效

查看当前的字段内存分配情况
 

GET /_stats/fielddata?fields=*

结果显示:所有索引的memory_size_in_bytes全部为0

后来执行查看系统配置命令

GET _settings/_all

此时出现了一个更详细的错误,显示为Circuit breaker errors,且为[parent]类型,查阅ES官方文档,发现是由于heap size设置过小导致。

 

ps查看启动命令,确实只设置了1G内存。

根据官方文档说明,在ES目录创建配置-Xms10g -Xmx10g,注意最大和最小要设置为相同大小。

vim ./config/jvm.options.d/esheap.options

-Xms10g

-Xmx10g

然后重启ElasticSearch,问题解决。

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,"org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception Data too large"错误是由于数据大小超过了Elasticsearch的限制引起的[^1]。具体来说,错误信息中提到了"circuit_breaking_exception",这是Elasticsearch中的一种机制,用于防止节点过载。当数据大小超过了限制时,Elasticsearch会触发断路器并抛出此异常。 为了解决这个问题,可以尝试以下方法: 1. 增加Elasticsearch的限制:可以通过修改Elasticsearch的配置文件来增加限制。具体来说,可以增加`indices.breaker.total.limit`和`indices.breaker.request.limit`的值,以适应更大的数据量。但是需要注意,增加限制可能会导致节点负载过高,因此需要根据实际情况进行调整。 2. 减少数据量:如果数据量超过了Elasticsearch的限制,可以考虑减少数据量。可以通过以下方法来减少数据量: - 分批处理数据:将大数据集分成多个较小的批次进行处理,以避免超过限制。 - 压缩数据:使用压缩算法对数据进行压缩,以减少数据的大小。 - 删除不必要的字段:如果数据中包含不必要的字段,可以考虑删除这些字段以减少数据量。 3. 增加Elasticsearch集群的规模:如果以上方法无法解决问题,可以考虑增加Elasticsearch集群的规模,以提供更多的资源来处理大数据量。 请注意,具体的解决方法可能因为你的具体情况而有所不同。建议根据实际情况选择适合的方法来解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值