首页 > 系统相关 >解决ES因内存不足而无法查询的错误,Data too large, data for [<http_request>]

解决ES因内存不足而无法查询的错误,Data too large, data for [<http_request>]

时间:2023-11-01 09:44:56浏览次数:44  
标签:mb 内存大小 large elasticsearch too docker data ES

转自https://www.kancloud.cn/luke8327/phpwolf/2655264

本解决方案的前提是在docker环境下

错误详情:

[type=circuit_breaking_exception, reason=[parent] Data too large, data for [<http_request>] would be [125643918/119.8mb], which is larger than the limit of [90832896/86.6mb], real usage: [125639936/119.8mb], new bytes reserved: [3982/3.8kb], usages [request=0/0b, fielddata=0/0b, in_flight_requests=3982/3.8kb, accounting=15713/15.3kb]] ElasticsearchStatusException[Elasticsearch exception [type=circuit_breaking_exception, reason=[parent] Data too large, data for [<http_request>] would be [125643918/119.8mb],

在这里找到了3个数值
Data too large, data for [] would be [125643918/119.8mb] 这个就是上限内存(缺省是它是ES最大内存的95%)
real usage: [125639936/119.8mb], ES已经使用的内存
new bytes reserved: [3982/3.8kb] 本次查询需要的内存

自己也百度了一些解答,如下:

1。增加ES的JVM内存大小,文件在 /config/jvm.options

把这两个值改大一点
-Xms1g
-Xmx1g
改了之后使用docker restart elasticsearch 重启,还是不行,并且报的数值都差不多,说明内存根本没有生效

2。修改缓冲区


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

PUT /_cluster/settings  
{  
"persistent": {  
"indices.breaker.request.limit": "40%"  
}  
}

PUT /_cluster/settings  
{  
"persistent": {  
"indices.breaker.total.limit": "70%"  
}  
}

也没用

解决办法

思路1,我想了一下会不会是docker限制了容器的内存大小,查阅资料后发现docker默认不限制容器内存大小的。

思路2,我百度了docker查看启动容器的命令的指令ps -fe,发现启动ES的命令行中发现了 -Xms64m -Xmx128m ,然后结合内存不够的数值,也差不多能对上,那肯定就是docker启动命令的问题了,虽然你修改了ES在JVM文件中的内存大小,但是可能
docker restart 重启的时候还是用的docker run的指令,所以导致设置的内存大小没有应用成功。

解决:
docker stop 容器 停止容器
docker rm 容器 删除容器
最后在命令行重新指定内存大小
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms3g -Xmx3g" -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.4.2

标签:mb,内存大小,large,elasticsearch,too,docker,data,ES
From: https://www.cnblogs.com/gongzb/p/17802346.html

相关文章

  • CF1872E Data Structures Fan 题解
    CF1872E翻译请把数据加强到\(\sumn\leq10^8\)后重新思考。我们维护全局中被标记的所有点的异或和。发现对于一次\(1\)操作,相当于让答案异或上区间的\(a_i\)异或和,因为这会让被标记的点变成没被标记的,而没被标记的点会产生贡献。查询的话直接查询即可复杂度......
  • DataNode心跳与块汇报流程
    1.背景文件内容的变更往往意味着block信息的变更,在datanode中,变更的block会发送给namenode,namenode会更新block信息。本文将介绍datanode心跳流程和block块汇报流程。2.DataNode心跳线程模型在HadoopFederation架构中,一般由一对Active/StandbyNameNode为一组作为一个namespa......
  • Ubuntu下编译最新版本全志开源FEL模式工具sunxi-tools
    1、sunxi-tools介绍sunxi-tools是一组用于全志SoC系列芯片的开源命令行工具,全志的SoC一般以sun开头,x为数字,以i结尾。对于sun4i,sun5i,sun6,sun8i,sun9i.等等系列都可以使用这个工具。比如手上的这个板子是H616,它的名字是sun50i-H616。sunxi-tools是一组工具集,这组工具可以用于对全......
  • Databend 开源周报第 117 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。特性预览:只读式ATTACHTABLE为了少数几条大规模查询,而......
  • [个人记录] datax同步Oracle数据到MSSQL - 报错提示插入重复主键
    之前试着把Oracle的数据同步到MSSQL,表到表的操作,结果提示插入重复主键,在Oracle使用的是rowid插入到MSSQL表的id主键中去,该id设置了主键约束。一开始很纳闷,怎么会重复插入主键呢?rowid不是唯一的吗?因为搞了很久没搞定,换了其他生成主键的方法也没成功,sys_guid()之类的。......
  • Databend 开源周报第 117 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。特性预览:只读式ATTACHTABLE为了少数几条大规模查询,......
  • Arm GNU Toolchain Downloads
    ArmGNUToolchainDownloadsArmGNUToolchainDownloadshttps://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads......
  • linux系统报Too many open files的错误
    1、https://www.cnblogs.com/zj-cloud/articles/17169769.html一、openfile文件描述符不够故障现象:程序会报Toomanyopenfiles的错误,是因为openfiles数目不够 排查思路:1、ulimit-a或ulimit-n查看当前最大打开的openfile数量 默认是1024修改/etc/security/lim......
  • 解决pandas.core.frame.DataFrame格式数据与numpy.ndarray格式数据不一致导致无法运算
    解决pandas.core.frame.DataFrame格式数据与numpy.ndarray格式数据不一致导致无法运算问题在数据分析与机器学习中,经常会遇到处理数据的问题。而使用Python进行数据处理和分析时,pandas库和numpy库是常用的工具。其中,pandas库提供了DataFrame数据结构,numpy库提供了ndarray数据结构。......
  • python pandas.DataFrame.plot( )画图
     pythonpandas.DataFrame.plot()画图DataFrame.plot(x=None,y=None,kind='line',ax=None,subplots=False,sharex=None,sharey=False,layout=None,figsize=None,use_index=True,title=None,grid=None,legend=True,......