索引的配置项按是否可以更改分为static属性与动态配置,所谓的静态配置即索引创建后不能修改。目录如下:生产环境中某索引结构(7.X后有变化)

索引静态配置


1、分片与压缩

  • index.number_of_shards:一个索引的主分片(primary shards)数。在ES层面可以通过 es.index.max_number_of_shards 属性设置索引最大的分片数,默认为1024;index.number_of_shards 的默认值为 Math.min(es.index.max_number_of_shards,5),故通常默认值为5。
  • index.codec: 数据存储的压缩算法,默认值为LZ4,可选择值 best_compression ,比LZ4可以获得更好的压缩比(即占据较小的磁盘空间,但存储性能比LZ4低)。

2、数据存储类型:index.store.type

不同的文件系统有不同的存储类型。默认情况下,Elasticsearch将根据操作环境选择最佳实现。可选的存储类型有:

索引动态配置


1.分片相关配置

2.查询相关的设置

3.刷新索引的设置

4、translog设置

  • sync_interval :如果 index.translog.durability 设置为 async,用该值来设置刷盘的频率,默认为5s。
  • flush_threshold_size: es强制刷新的另外一个维度,如果translog的大小达到该值,则强制将未刷盘的数据强制刷新到Lucene中
  • flush_threshold_period: 在指定的时间间隔内如果没有进行flush操作,会进行一次强制flush操作。默认是30m。
  • retention.size: 保存跨日志文件的总大小。也就是一translog日志文件flush后,并不马上删除,而是保留一段时间,但最新的translog文件已存储的内容与待删除的文件的间隔不超过该参数设置的值,默认为512M。
  • retention.age: 保存translog文件的最大持续时间,默认为12 h

5、查询慢日志设置

  • 首先ES提供在查询阶段(query)和数据获取阶段(fetch)设置阔值,超过该阔值则记录日志。 支持如下参数:
1、index.search.slowlog.threshold.query.warn: 10s
2、index.search.slowlog.threshold.query.info: 5s
3、index.search.slowlog.threshold.query.debug: 2s
4、index.search.slowlog.threshold.query.trace: 500ms
  • 上述参数定义查询阶段的阔值,分别表示,如果执行时间超过10s,打出警告日志,超过5s输出info级别日志
1、index.search.slowlog.threshold.fetch.warn: 1s
2、index.search.slowlog.threshold.fetch.info: 800ms
3、index.search.slowlog.threshold.fetch.debug: 500ms
4、index.search.slowlog.threshold.fetch.trace: 200ms

index.search.slowlog.level: info 
  • 上述参数定义查询获取数据(fetch)的阔值,分别表示,如果执行时间超过1s,打出警告日志,超过800ms输出info级别日志。
  • index.search.slowlog.level: info  定义日志输出级别为info,也就是 debug,trace 级别的日志不输出。注意:上述日志级别为分片级日志。
  • 级别(warn, info, debug, trace)可以控制哪些日志级别的日志将会被记录
  • 注意,日志记录是在分片级别范围内完成的,这意味着只有在特定的分片中执行搜索请求的慢日志才会被记录。
  • 日志文件配置默认在log4j2.properties

Flag:生产环境的系统配置?查询与取数?

6、Index Show Log

1、index.indexing.slowlog.threshold.index.warn: 10s
2、index.indexing.slowlog.threshold.index.info: 5s
3、index.indexing.slowlog.threshold.index.debug: 2s
4、index.indexing.slowlog.threshold.index.trace: 500ms 5、index.indexing.slowlog.level: info
6、index.indexing.slowlog.source: 1000
  • index.indexing.slowlog.source:参数用来控制记录文档_souce字段字符的个数,默认为1000,表示只记录_souce字段的前1000个字符,可以设置true,表示输出_souce字段全部内容,设置为false,表示不记录_souce字段的内容
  • 默认情况下,会对_souce字段的输出进行格式化,通常使用一行输出,如果想阻止格式化,可以通过 index.indexing.slowlog.reformat 设置为false来避免
  • 索引慢日志文件名后缀为 _index_indexing_slowlog.log, 默认日志文件配置也是在log4j2.properties

Flag:

1、slow生产环境配置?查询与取数?级别?

2、routing 是否可尝试来提高性能?

  • Re: 对于数据量较大的业务查询场景,es侧一般会创建多个shard,并将shard分配到集群中的多个实例来分摊压力,
  • 正常情况下,一个查询会遍历查询所有的shard,然后将查询到的结果进行merge之后,再返回给查询端。此时,写入的时候设置routing,可以避免每次查询都遍历全量shard,而是查询的时候也指定对应的routingkey,这种情况下,es会只去查询对应的shard,可以大幅度降低合并数据和调度全量shard的开销。

4、宽表的问题?在不支持Join的前提下的解决方案?

  • Re: 在索引中定义太多字段是一种可能导致映射爆炸的情况,这可能导致内存不足错误和难以恢复的情况,这个问题可能比预期更常见,index.mapping.total_fields.limit ,默认值是1000

5、7.X JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超出单机处理的最大内存限制时会被截断,并抛出异常?

参考


R3_Elasticsearch Index Setting的更多相关文章

  1. Kooboo 加Search功能 必须先ReBuild Index Data

      加Search功能   有几个要点 1. 需要在Kooboo 必须先 ReBuild Index Data 2. 需要在要搜索的page中启用搜索索引         搜索的代码 @using K ...

  2. Elasticsearch Index模块

    1.  Index Setting(索引设置) 每个索引都可以设置索引级别.可选值有: static  :只能在索引创建的时候,或者在一个关闭的索引上设置 dynamic:可以动态设置 1.1.  S ...

  3. Query the tables and index which will caus rebuild index fail

    On MSSQL server database, while rebuild index failed, we can use the follow sql statement to see if ...

  4. sphinx索引分析——文件格式和字典是double array trie 检索树,索引存储 – 多路归并排序,文档id压缩 – Variable Byte Coding

    1 概述 这是基于开源的sphinx全文检索引擎的架构代码分析,本篇主要描述index索引服务的分析.当前分析的版本 sphinx-2.0.4 2 index 功能 3 文件表 4 索引文件结构 4. ...

  5. Django进阶篇【1】

    注:本篇是Django进阶篇章,适合人群:有Django基础,关于Django基础篇,将在下一章节中补充! 首先我们一起了解下Django整个请求生命周期: Django 请求流程,生命周期: 路由部 ...

  6. (一)最小的Django

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 本文基本内容均出自<Lightweight Django>(中文为<轻量级D ...

  7. Scroll Segmented Control(Swift)

    今天用了一个github上一个比较好用的Segmented Control但是发现不是我要效果,我需要支持scrollView.当栏目数量超过一屏幕,需要能够滑动. 由于联系作者没有回复,我就自己在其 ...

  8. [译]使用explain API摆脱ElasticSearch集群RED苦恼(转)

    "哔...哔...哗",PagerDuty的报警通知又来了. 可能是因为你又遭遇了节点宕机, 或者服务器机架不可用, 或者整个ElasticSearch集群重启了. 不管哪种情况, ...

  9. elasticsearch 口水篇(6) Mapping 定义索引

    前面我们感觉ES就想是一个nosql数据库,支持Free Schema. 接触过Lucene.solr的同学这时可能会思考一个问题——怎么定义document中的field?store.index.a ...

  10. elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))

    一.分词器 1. 认识分词器  1.1 Analyzer   分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如 ...

随机推荐

  1. KingbaseES V8R6集群运维系列 -- 修改ssh通信为 sys_securecmdd 通信

    一.适用于: 本文档使用于KingbaseES V008R006版本. 二.关于SYS_SECURECMDD: sys_securecmdd是KingbaseES集群自带的工具,集群监控.管理集群时通 ...

  2. KingbaseES 使用sys_bulkload远程导入

    前言 sys_bulkload 常见场景是本地导入数据,也可以在远程运行 sys_bulkload ,对数据库上的CSV 文件进行导入.远程导入数据时候需要注意,csv文件和ctl文件所在服务器.以下 ...

  3. 表的唯一约束的作用 KingbaseES VS Oracle

    背景 演示唯一约束怎样创建.删除.禁用和使用唯一性约束,已经多种数据库的差异. 什么是唯一约束 唯一性约束指表中一个字段或者多个字段联合起来可以唯一标识一条记录的约束, 字段中,可以包括空值. 唯一性 ...

  4. 2024最新最全Java和Go面经,面试了30多场,终于上岸了!

    ​> 本文来自我们技术交流群群友的投稿,未经授权,禁止转载. 原文链接:太难了,Java和Go,面试了30多场,终于上岸了! 先听一下TA的故事 2023年10月份我就做好了离职跳槽的准备,做了 ...

  5. UE4中的C++编程简介

    对官方文档的学习链接 利用UE创建一个C++基类 在编辑器中可以选择父类,根据这个父类我们可以创建一个基类用于后续的蓝图类制作. 以Actor父类为例创建基类,其头文件会包含一个构造函数,一个Tick ...

  6. C 语言:类型转换与常量的细致理解

    C 语言中的类型转换 有时,您必须将一种数据类型的值转换为另一种类型.这称为类型转换 隐式转换 当您将一种类型的值分配给另一种类型的变量时,编译器会自动进行隐式转换. 例如,如果您将一个 int 值分 ...

  7. Java轻松实现,每天给对象发情话!

    一.引言 最近看到一篇用js代码实现表白的文章,深有感触.然后发现自己也可以用java代码实现,然后就开始写代码了,发现还挺有意思的,话不多说开搞实现思路: 使用HttpClient远程获取彩虹屁生成 ...

  8. 三七互娱《斗罗大陆:魂师对决》上线,Network Kit助力玩家即刻畅玩

    三七游戏旗下的年度旗舰大作<斗罗大陆:魂师对决>现已开启全平台公测.8月1日,三七互娱技术副总监出席了HMS Core.Sparkle游戏应用创新沙龙,展示了在HMS Core Netwo ...

  9. vc修改ocx控件classID

    背景: 客户希望,classID 为客户自已定义好的一个 ID ,由于我们自动生成的 classID 和客户定义的 ID 不同,所以我们需要修改 classID 为客户指定的 ID 解决方法: 1.打 ...

  10. DevEco Device Tool 3.0 Beta2新版本发布,新增实用功能一览

    DevEco Device Tool是面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS Connect/OpenHarmony的组件按需定制,支持代码编辑.编译.烧录和调试.性能监测 ...