2019独角兽企业重金招聘Python工程师标准>>>

内存控制器

在Elasticsearch中有很多控制器可以防止内存溢出,每个控制器可以指定内存使用的最大值,除此之外,还有一个总的控制器在确定整个系统使用的最大内存值。这些配置都可以动态更新。总的内存控制有以下参数:

indices.breaker.total.limit:总的内存使用大小,默认为JVM堆内存大小的70%。

列数据内存大小:

列数据内存大小是指,在Elasticsearch系统中,系统会估计有多少数据被加载到内存中,如果估计超过这个阀值,它可以通过一个异常来防止该字段的数据加载。

indices.breaker.fielddata.limit:列数据内存大小的限制,默认为JVM堆内存大小的60%。

indices.breaker.fielddata.overhead:所有列估计的内存大小的乘积,默认是1.03.

请求控制器,防止Elasticsearch每个请求的数据结构()超过一定的值。

indices.breaker.request.limit:请求控制器的大小,默认为JVM堆内存大小的40%。

indices.breaker.request.overhead:所有请求的乘积,默认为1。

数据缓存

现场数据缓存主要用于当排序或聚合操作的时候。它将所有的字段值加载到内存中以便提供快速访问文档中的这些值。

indices.fielddata.cache.size:数据缓存的最大值,可以是一个节点的堆内存大小的比例,例如30%,也可以是一个绝对数字,比如12GB。默认是无限制,可以最大的利用内存。这个配置是静态的配置,必须在集群中的每个数据节点上启动前配置好。可以通过http://localhost:9200/_nodes/stats请求来监控节点的使用情况。

节点查询缓存

查询缓存是负责缓存查询的结果。每个节点都有一个查询缓存,这个缓存为这个节点下的所有分片服务。这个缓存采用最近最少使用算法;  当缓存满的是,把最少使用的数据优先删掉。查询缓存只有使用过滤的时候才会起作用。

indices.queries.cache.size:可以是一个节点的堆内存大小的比例,例如5%,也可以是一个绝对数字,比如 512mb。默认为JVM堆内存大小的10%。

索引缓冲区

索引缓冲区用于存储新的索引文档。当缓冲区满后,缓冲区中的文件被写入磁盘上的一个段,它会在节点的所有分片上分离。它的设置是静态的,并且必须在群集中的每个数据节点上配置。

indices.memory.index_buffer_size:一个节点索引缓冲区的大小,可以是一个节点的堆内存大小的比例获知是一个绝对数字。默认为JVM堆内存大小的10%。

indices.memory.min_index_buffer_size:可以使用此设置指定最小的索引缓冲区大小。默认为48MB。

indices.memory.max_index_buffer_size:可以使用此设置指定最大的索引缓冲区大小。默认为无限制。

indices.memory.min_shard_index_buffer_size:设置分配给每个分片索引缓冲区的内存最小值,默认4MB。

本文由赛克 蓝德(secisland)原创,转载请标明作者和出处。

分片请求缓存

当一个搜索请求是对一个索引或者多个索引的时候,每一个分片都是进行它自己内容的搜索然后把结果返回到协调节点,然后把这些结果合并到一起统一对外提供。分片缓存模块缓存了这个分片的搜索结果。这使得搜索频率高的请求会立即返回。

注意:请求缓存只缓存查询条件 size=0的搜索,缓存的内容有hits.total, aggregations, suggestions,不缓存原始的hits。通过now查询的结果将不缓存。

缓存失效:只有在分片的数据实际上发生了变化的时候刷新分片缓存才会失效。刷新的时间间隔越长,缓存的数据越多,当缓存不够的时候,最少使用的数据将被删除。缓存过期可以手工设置,例如:

localhost:9200/kimchy,elasticsearch/_cache/clear?request_cache=true

默认情况下缓存未启用,但在创建新的索引时可启用,例如:

PUT localhost:9200/my_index

{"settings": {"index.requests.cache.enable": true}
}

当然也可以通过动态参数配置来进行设置:

PUT localhost:9200/my_index/_settings -d'

{ "index.requests.cache.enable": true }

每请求启用缓存,查询字符串参数request_cache可用于启用或禁用每个请求的缓存。例如:

localhost:9200/my_index/_search?request_cache=true

{"size": 0,"aggs": {"popular_colors": {"terms": {"field": "colors"}}}
}

注意:如果你的查询使用了一个脚本,其结果是不确定的(例如,它使用一个随机函数或引用当前时间)应该设置request_cache为false禁用请求缓存。

缓存key,数据的缓存是整个JSON,这意味着如果JSON发生了变化 ,例如如果输出的顺序顺序不同,缓存的内容江将会不同。不过大多数JSON库对JSON键的顺序是固定的。

分片请求缓存是在节点级别进行管理的,并有一个默认的值是JVM堆内存大小的1%,可以通过配置文件进行修改。

例如:indices.requests.cache.size: 2%

可以通过localhost:9200/_stats/request_cache?pretty&human或者'localhost:9200/_nodes/stats/indices/request_cache?pretty&human来缓存监控,缓存的大小(以字节为单位)。

索引恢复

indices.recovery.concurrent_streams:默认为3。

indices.recovery.concurrent_small_file_streams:默认为2。

indices.recovery.file_chunk_size:默认为512KB。

indices.recovery.translog_ops:默认为1000。

indices.recovery.translog_size:默认为512KB。

indices.recovery.compress:默认为true。

indices.recovery.max_bytes_per_sec:默认为40MB。

TTL区间

文档有个ttl值可以设置当过期的时候是否需要删除,

indices.ttl.interval:删除程序的运行时间。默认为60。

indices.ttl.bulk_size:删除处理与批量请求的数量,默认为10000。

赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。也欢迎加入secisland公众号进行关注。

转载于:https://my.oschina.net/secisland/blog/618702

Elasticsearch 2.2.0 索引配置详解相关推荐

  1. nginx1.0安装配置详解

    nginx1.0安装配置详解 本文转自:twenty_four的博文,自己稍作精简修改. http://twentyfour.blog.51cto.com/945260/568906 1.选择Ngin ...

  2. Spring Boot 2.0 的配置详解(图文教程)

    本文来自作者 泥瓦匠 @ bysocket.com 在 GitChat 上分享 「Spring Boot 2.0 的配置详解(图文教程)」 编辑 | 哈比 Spring Boot 配置,包括自动配置和 ...

  3. Elasticsearch 5 Ik+pinyin分词配置详解

    一.拼音分词的应用 拼音分词在日常生活中其实很常见,也许你每天都在用.打开淘宝看一看吧,输入拼音"zhonghua",下面会有包含"zhonghua"对应的中文 ...

  4. 微软WSUS服务器 3.0安装配置详解

    公司之前用的是Wsus 2.0,前段时间Wsus3.0出来之后系统自动更新到了3.0版本.前几天调整服务器,需要把 Wsus服务器重新安装到另一台服务器上,刚好可以彻底的尝试一下Wsus3.0服务了. ...

  5. JBOSS5.0 Beta4 配置详解

    一.              下载与安装JBoss 在本文中,我下载的JBoss版本为:JBOSS5.0 Beta4. 下载地址: http://www.jboss.org/jbossas/down ...

  6. ThinkPHP 配置详解

    3.0 ThinkPHP配置详解 3.1 入口文件的配置 一般不建议在入口文件做过多的配置,但可以重新定义一些系统常量,以下简单介绍几个常用的系统常量. 1.APP_PATH 默认情况下,框架的项目应 ...

  7. vue中使用ECharts实现中国地图配置详解(配官方配置地址)

    前言: 1.实现自定义左下角的视觉映射组件(包括自定义颜色.文字.图元大小) 2.实现自定义悬浮提示框 如下图所示: 实现步骤: 一.在vue中安装echarts 1.npm install echa ...

  8. vue-cli3.0配置详解

    这次给大家带来vue-cli3.0配置详解,使用vue-cli3.0配置的注意事项有哪些,下面就是实战案例,一起来看一下. 新建项目 1 2 3 4 5 6 7 8 # 安装 npm install ...

  9. marlin2.0.5.4配置详解——个人记录

    marlin2.0.5.4配置详解--个人记录 串口波特率 主板类型 挤出机数量 混色打印 温度传感器 最大温度 挤出机保护 双轴联动结构 限位开关上拉 限位开关信号 电机使能信号 禁用电机 电机运动 ...

最新文章

  1. python使用界面-用python制作用户图形界面
  2. 汇编语言随笔(2)-CPU指令周期和无条件转移指令(包括call和ret指令)
  3. 详解JVM内存结构(基于JDK8)
  4. python子类继承父类特性,pycharm上面已经提示继承了,为什么会报没有该特性的错误?
  5. 第一次写CSDN的博客
  6. 特斯拉2020年第三季度共生产14.5万辆汽车 交付约14万辆
  7. linux把虚拟机上的文件共享,[转]windows中vmware虚拟机中的Linux如何进行文件的共享...
  8. adaboost代码实现
  9. vue click.stop阻止点击事件继续传播
  10. CF468A 24 Game
  11. 十个随机数排列(vb代码)
  12. java超市运行程序源代码_Java课程设计超市库存管理系统附源代码可以直接运行...
  13. opencv python 的基本操作案例(一) 记录,可查看
  14. 在线抢购平台_课程设计报告
  15. 【Android安全】Android root原理及方案 | Magisk原理
  16. 太原学院的计算机科学与技术学院,太原 学院新校区计算机科学与技术
  17. 数论类题目小结 (转帖)~~~经典…
  18. 如何使用Imperva Incapsula优化和加速您的网站
  19. 【路科V0】systemVerilog基础11——随机变量
  20. 本地windows启动redis集群

热门文章

  1. 这个“大脑”收获一份大奖!
  2. Science:人类迎来目前最为全面的癌症染色质可及性图谱
  3. 《2018中国大数据发展指数报告》发布:广东、上海、贵州、北京、重庆领先
  4. 芯片业又起波澜!博通189亿美元收购遭质疑,股价一度跌近19%
  5. 解析:GE工业互联网平台Predix
  6. 未来15年,人工智能将带给城市8种改变
  7. Decode()函数使用技巧
  8. 大白话讲解闭包笔试题
  9. 为什么会出现__pycache__文件夹?
  10. 企业上云需跨越哪些“雷区”?