我试图弄清楚为什么在从python web应用程序索引文档时会出现这个错误。
本例中的文档是一个大小为10877 KB的文件的base64编码字符串。
我将其发布到我的web应用程序,然后该应用程序通过elasticsearch.py将其发布到我的弹性实例。
我的弹性实例抛出错误:
TransportError(429, 'circuit_breaking_exception', '[parent] Data
too large, data for [<http_request>] would be
[1031753160/983.9mb], which is larger than the limit of
[986932838/941.2mb], real usage: [1002052432/955.6mb], new bytes
reserved: [29700728/28.3mb], usages [request=0/0b,
fielddata=0/0b, in_flight_requests=29700728/28.3mb,
accounting=202042/197.3kb]')我正在尝试理解为什么我的10877 KB文件最终达到了elastic所报道的983mb大小。
我知道增加JVM最大堆大小可能会允许我发送更大的文件,但我更想知道为什么请求大小似乎是我预期大小的10倍。
发布于 2020-02-08 17:03:14
让我们一步一步地看看这里有什么:
[parent] Data too large, data for [<http_request>]提供断路器的名称
would be [1031753160/983.9mb], 表示堆大小的外观,以及何时执行请求。
which is larger than the limit of [986932838/941.2mb],告诉我们上面断路器的电流设置
real usage: [1002052432/955.6mb],这是堆的实际用法
new bytes reserved: [29700728/28.3mb],实际上是一个估计值,即请求将产生什么影响(为了处理请求需要创建的数据结构的大小)。您的~10MB文件可能会占用28.3MB。
usages [
request=0/0b,
fielddata=0/0b,
in_flight_requests=29700728/28.3mb,
accounting=202042/197.3kb
]最后一行告诉我们如何计算估计值。
https://stackoverflow.com/questions/60121024
复制相似问题