gpt4 book ai didi

node.js - 使用Node JS堆的Elasticsearch查询内存不足

转载 作者:行者123 更新时间:2023-12-02 23:42:24 26 4
gpt4 key购买 nike

现在发生了什么?
我再次建立一个Elasticsearch查询。主要功能是获取直到12周前的每小时数据计数。
查询一遍又一遍。 NodeJS的内存将从20mb开始增加到1024mb。 令人惊讶的是,内存并没有立即达到顶峰。 它更像稳定在25mb以下(保持约几分钟),然后突然开始增长(25mb,46mb,125mb,350mb ...直到1024mb),最终导致NodeJS内存泄漏。 不论我如何称呼此查询,内存仍将增长并且根本不会释放。并且这种情况仅在远程服务器(在docker中运行)发生,在本地docker env完全可以(内存相同)。
enter image description here
我如何查询?
像下面

const query = {
"size": 0,
"query": {
"bool": {
"must": [
{ terms: { '_id.keyword': array_id } },
{
"range": {
"date_created": {
"gte": start_timestamp - timestamp_twelve_weeks,
"lt": start_timestamp
}
}
}
]
}
},
"aggs": {
"shortcode_log": {
"date_histogram": {
"field": "date_created",
"interval": "3600ms"
}
}
}
}
返回值是多少?
如下所示(总查询时间约为2秒)。
{
"aggs_res": {
"shortcode_log": {
"buckets": [
{
"key": 1594710000,
"doc_count": 2268
},
{
"key": 1594713600,
"doc_count": 3602
},
{//.....total item count 2016
]
}
}
}

最佳答案

如果您的直方图间隔实际上是3600ms(不应该是3600s?),那么在12周内进行汇总的时间就非常短。
表示0.06分钟。
每天24000次
每周168000
2016000,共12周。
它可以解释

  • 为什么您的脚本需要等待很长时间才能执行任何操作
  • 尝试在存储桶上循环时为什么内存会爆炸

  • 在您的示例中,您仅返回了2016个存储桶。
    我认为这是您的2个测试之间的微小差异。

    关于node.js - 使用Node JS堆的Elasticsearch查询内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64334254/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com