elasticsearch 优化

从硬件上 :

  1. 使用SSD 硬盘,解决io导致的瓶颈。
  2. 增大内存 但不超过32G(单实例建议设置31G) ,elasticsearch 设置不超过机器内存的60%。
  3. 如果负载过高,增加cpu核心数。

从软件上:

  1. 减少集群的副本数量, 一般集群有1-2两个副本即可,最多有3个副本。
Elasticsearch 默认副本数量为 3 个,虽然这样会提高集群的可用性,增加搜索的并发数,但是同时也会影响写入索引的效率。

在索引过程中,需要把更新的文档发到副本节点上,等副本节点生效后在进行返回结束。使用 Elasticsearch 做业务搜索的时候,建议副本数目还是设置为 3 个,但是像内部 ELK 日志系统、分布式跟踪系统中,完全可以将副本数目设置为 1 个。
  1. 根据业务量设定分片的数量(默认分片是为5个,分片是为了解决一个索引过大),多分片会导致io压力。

  2. 一个索引不要过大--》分索引(按日分,按周分)

  3. 减少索引的document里的字段,在跟需要查询的用户确认他们需要的字段,然后将一些不需要的字段清除。将filebeat的一些name字段,version字段删除。

  4. 针对不使用的index,进行close。我们需要的时候再进行open,可以节约内存和减轻系统的压力。

curl -XPOST 127.0.0.1:9200/index_name/_close
curl -XPOST 127.0.0.1:9200/index_name/_open
  1. 增加 Refresh 时间间隔

    为了提高索引性能,Elasticsearch 在写入数据时候,采用延迟写入的策略,即数据先写到内存中,当超过默认 1 秒 (index.refresh_interval)会进行一次写入操作,就是将内存中 segment 数据刷新到操作系统中,此时我们才能将数据搜索出来,所以这就是为什么 Elasticsearch 提供的是近实时搜索功能,而不是实时搜索功能。

    当然像我们的内部系统对数据延迟要求不高的话,我们可以通过延长 refresh 时间间隔,可以有效的减少 segment 合并压力,提供索引速度。在做全链路跟踪的过程中,我们就将 index.refresh_interval 设置为 30s,减少 refresh 次数。

    同时,在进行全量索引时,可以将 refresh 次数临时关闭,即 index.refresh_interval 设置为 -1,数据导入成功后再打开到正常模式,比如 30s。

    如果我们的业务是要求的实时性比较高的,将index.refresh_interval 设置为 -1

  2. 不使用swap(虚拟内存)

    为什么要禁用?禁用swap

  3. 使用elastisearch 自动生成的id(_id)

    也就是我们的document的字段里面不要有_id字段,让该字段由elasticsearch自动生成。这样索引更快。

从用户使用层

  1. 用户层:用户去搜索的时候需要避免返回比较大的结果集,通过设置默认的搜索时间段,来尽量避免返回较大的结果集。
  2. 用户进行搜索的时候尽量使用过滤器(Filter)这样可以从缩小搜索范围。比如我们在查询报错日志时,我们通过level字段筛选出ERROR等级,然后再进行搜索,这样对系统的压力可以减小,并且搜索速度更快。

文档:

官网:

https://www.elastic.co/guide/en/elasticsearch/reference/current/tune-for-indexing-speed.html

优化方案:

https://elasticsearch.cn/article/6202

lucene

https://elasticsearch.cn/article/6178

腾讯云优化:https://cloud.tencent.com/developer/article/1156231

elasticsearch(六) 之 elasticsearch优化的更多相关文章

  1. Elasticsearch入门教程(六):Elasticsearch查询(二)

    原文:Elasticsearch入门教程(六):Elasticsearch查询(二) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...

  2. Elasticsearch笔记九之优化

    Elasticsearch笔记九之优化 ).get(); } curl命令可以在linux中建立一个定时任务每天执行一次,同样java代码也可以建立一个定时器来执行. 2:内存设置之前介绍过es集群有 ...

  3. 工作随笔—Elasticsearch大量数据提交优化

    问题:当有大量数据提交到Elasticsearch时,怎么优化处理效率? 回答: 批量提交 当有大量数据提交的时候,建议采用批量提交. 比如在做 ELK 过程中 ,Logstash indexer 提 ...

  4. 【ElasticSearch】ElasticSearch-索引优化-自定义索引

    ElasticSearch-索引优化-自定义索引 es 指定 索引 字段_百度搜索 [es]创建索引和映射 - 匡子语 - 博客园 reindex,增加字段,并新增数据 - Elastic中文社区 e ...

  5. 让Elasticsearch飞起来!——性能优化实践干货

    原文:让Elasticsearch飞起来!--性能优化实践干货 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog ...

  6. Elasticsearch教程(六) elasticsearch Client创建

    Elasticsearch  创建Client有几种方式. 首先在 Elasticsearch  的配置文件 elasticsearch.yml中.定义cluster.name.如下: cluster ...

  7. 批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用

    一.分布式ELK平台 ELK的介绍: ELK 是什么? Sina.饿了么.携程.华为.美团.freewheel.畅捷通 .新浪微博.大讲台.魅族.IBM...... 这些公司都在使用 ELK!ELK! ...

  8. 【ElasticSearch篇】--ElasticSearch从初识到安装和应用

    一.前述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,在企业中全文搜索时,特别常用. 二.常用概念 clu ...

  9. App架构师实践指南六之性能优化三

    App架构师实践指南六之性能优化三 2018年08月02日 13:57:57 nicolelili1 阅读数:190   内存性能优化1.内存机制和原理 1.1 内存管理内存时一个基础又高深的话题,从 ...

随机推荐

  1. HDU1065 I Think I Need a Houseboat 2016-07-24 13:59 101人阅读 评论(0) 收藏

    I Think I Need a Houseboat Problem Description Fred Mapper is considering purchasing some land in Lo ...

  2. linux处理U盘中的资料-挂载-tar.gz软件安装-linux环境下软件的安装方式

    1. U盘插入linux一般会有以下反映 (1)/dev 的目录下,多出一个sdb的磁盘. 因为:目前系统中有两个硬盘, sda是原来的系统磁盘.sdb是插入的U盘. 其中:sdb1表示sdbU盘的一 ...

  3. linux信号量(转载)

    本文转载自http://blog.csdn.net/qinxiongxu/article/details/7830537 信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只 ...

  4. genymotion无法连接相机问题

    genymotion模拟器即时打开了相机的开关,也无法连接到相机.这是因为其他进程占用了相机,虚拟设备无法获得,可以尝试: 1.不关闭模拟器,重启adt的Eclipse 2.重启ADB,adb kil ...

  5. 基于SketchUp和Unity3D的虚拟场景漫游和场景互动

    这是上学期的一次课程作业,难度不高但是也一并记录下来,偷懒地拿课程报告改改发上来. 课程要求:使用sketchUp建模,在Unity3D中实现场景漫游和场景互动. 知识点:建模.官方第一人称控制器.网 ...

  6. 万能的ctrl+shift+F(Element 'beans' cannot have character [children], because the type's content type is element-only.错误)

    今天在spring-servlet.xml文件中出现了一个莫名其妙的错误:Element 'beans' cannot have character [children], because the t ...

  7. Even and Odd Functions

    \subsection{Even and Odd Functions} For a function $f$ in the form $y=f(x)$, we describe its type of ...

  8. Paul Simon -- Duncan

    Paul Simon -- Duncan (London,January 1972) Couple in the next roomBound to win a prizeTheyve been go ...

  9. session token防表单重提

    1.表单页面初始化前,先在session存入一个token值,随后把token存放在表单页面隐藏表单域内,开始初始化: 在表单页初始化前,调用ajax请求,在后台生成token,并返回至表单页 fun ...

  10. 关于单例的DCL方式分析

    public class Singleton { /** * 单例对象实例 */ private volatile static Singleton instance = null; public s ...