`
weitao1026
  • 浏览: 990784 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ElasticSearch 2 的节点调优(ElasticSearch性能)

 
阅读更多

摘要

一个ElasticSearch集群需要多少个节点很难用一种明确的方式回答,但是,我们可以将问题细化成一下几个,以便帮助我们更好的了解,如何去设计ElasticSearch节点的数目:

  1. 打算处理多少数据?
  2. 打算处理多少搜索请求?
  3. 请求的复杂度是怎样?
  4. 每个节点有多少资源数?
  5. 打算建立多少索引,支持多少应用?

版本

elasticsearch版本: elasticsearch-2.x

内容

一个集群解决所有问题?

需要回答的问题远不止以上这些,但是第五个问题往往是容易被我们忽视的,因为单个ElasticSearch集群有能力支持多索引,也就能支持多个不同应用的使用。我们可以将公司里所有的日志都放在一个ElasticSearch集群下处理,无论是网站上的一个简单查询,还是一个非常复杂的分析。了解一个集群能支持多少个应用程序的日志需求,能帮助我们分析出合适的节点数目

节点数与内存相关

ElasticSearch 的节点数受RAM的限制,对于某个服务器或虚拟机,我们分配的物理或虚拟内存是有限的,这样自然限制了我们分配节点的数量。

万能节点数——3

如果我们要建立一个ElasticSearch集群,一个比较合适的数字是3。为什么3?很大程度上一个集群3个节点可以防止“split-brain”出现,尽管,对于一个分布式的集群,每个节点都是对等的,但是我们仍然需要一个主节点master。这个节点承担协调自己以及其他所有节点间的通信任务。在ES中,主节点除了负责以上工作,它还会对分片与副本的存储进行优化,同时还要处理索引、写入数据和路由索引优化等问题。

三个和尚投票

当主节点master出现问题,从节点slave不能与主节点通信时,从节点会发起选举任命新的主节点,同时新的master会接管旧master的所有工作,如果旧master重新恢复并加入到集群中,新master会将原来旧的master降级为slave,这样就不会有冲突发生。所有这个过程都由ElasticSearch自己处理,使用者无需任何参与。

两个和尚投票

但是,当只有两个节点的时候,一主(master)一从(slave),如果主从直接的通信出现问题时,从节点slave会自我提升为master,但是当恢复通信时,我们就会同时有两个master。因为此时,对于原来的主节点(master)角度考虑,它认为是原来的从节点(slave)出现问题,现在仍然需要作为slave重新加入。这样,两个节点的时候,我们就出现了集群不知道将哪个节点选举为主节点的情况,也就是我们通常说的“分脑”。

为了防止这种情况的发生,第三个节点的出现会打破平衡,解决冲突问题。

三个和尚仍然存在问题

分脑的问题同样会出现在具有三或三个以上节点的集群中,为了降低发生的概率,ElasticSearch提供了一个配置 discovery.zen.minimum_master_nodes 它规定了在选举新的master时,一个集群下最少需要的节点数。例如,一个3节点集群,这个数字为2,2个节点可以防止单个节点在脱离集群时,将其自己选举成master,相反,它会等待直到重新加入到集群中。这个数值可以通过一个公式确定:

N/2 + 1

N的值为集群下所有节点的数目。

牺牲可用性

防止两个节点集群出现“分脑”情况有一个办法,就是将其中一个节点 node.data 的配置设置为 false,这样,这个节点就永远不会成为master,当然,这也会降低集群的可用性

小结

对于ElasticSearch集群的节点数没有定论,ElasticSearch的工程师在Quora上也给出了他的相似意见,可供参考

参考

参考来源:

How many nodes should an Elasticsearch cluster have?

What's the maximum number of nodes Elasticsearch can have? How many, max, have you used in practice?

Elasticsearch Internals: Networking Introduction

分享到:
评论

相关推荐

    ElasticSearch单节点部署步骤

    NULL 博文链接:https://woaijiadanoo.iteye.com/blog/2406140

    ElasticSearch集群节点类型

    ELasticsearch的集群是由多个节点组成的,通过cluster.name设置集群名称,并且用于区分其它的集群,每个节点通过node.name指定节点的名称。 在Elasticsearch中,节点的类型主要有4种: master节点: 配置文件中node...

    Elasticsearch调优实践

    Elasticsearch调优实践

    es-test:Elasticsearch单节点性能测试

    Elasticsearch尺寸测试 方法 生成以下格式的平面文件或随机日志信息 [source IP address] [yyyymmddHHMMss] GET http://[random uuid]/[random uuid]/[random uuid]/[random uuid] 0 TCP_MISS/200 - [target IP ...

    elasticsearch主节点搭建1

    ..\..\基础环境部分\java环境配置.docx主节点elasticsearch配置进入es主目录mv elasticsearch-* escd es配置e

    Elasticsearch调优实践.pdf

    本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数调优、ES节点配置和ES使用方式三个角度入手,介绍ES调优的基本方案。当然,ES的调优绝不能 一概而论,需要根据实际业务场景做适当的取舍和调整,文中的疏漏之处...

    Elasticsearch原理和调优

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,本文档对它的配置及其参数性能调优做了讲解

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战)

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...

    elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载

    elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载

    [性能]KingbaseES数据库性能调优指南.pdf

    [性能]KingbaseES数据库性能调优指南

    Elasticsearch索引和查询性能调优.pdf

    Elasticsearch 最大的瓶颈往往是磁盘读写性能,尤其是随机读取性能。使用SSD(PCI-E接口SSD 卡/SATA接口SSD盘)通常比机械硬盘(SATA盘/SAS盘)查询速度快5~10倍,写入性能提升不明显。 对于文档检索类查询性能要求...

    ElasticSearch实战 in Action.zip

    in Action(原著原版)压缩包,ElasticSearch文档,ES全文检索从入门到精通,高清PDF,是学习es和精通es必备手册,能快速达到精通ElasticSearch,一册在手,ElasticSearch无忧,开发、学习、调优都可使用。

    最新版Elasticsearch调优搜索速度.pdf

    Elasticsearch是非常灵活且功能丰富的搜索引擎,它提供了许多不同查询数据的方法。...作为分布式系统的Elasticsearch,可能有各种影响查询性能的因素。本文将分析可能导致慢查询的因素,并提供一些优化搜索速度的建议。

    linux命令行elasticsearch查询工具es2unix

    linux命令行elasticsearch查询工具es2unix

    es docker 部署 elasticsearch.yml

    docker run --name elasticsearch7.16.3 -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" -v /Users/xingyue/Home/xingyue/学习/工程化/es/elasticsearch.yml:/usr/share/elastic...

    elasticsearch-8.2.3 windows 版本

    elasticsearch-8.2.3 windows 版本。 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的...

    最新版本springboot集成elasticsearch

    一、概述 一般来说我们开发Elasticsearch会选择...2、elasticsearch-head (方便查看ES中的索引及数据) 3、Kibana(方便开发通过rest api 调试ES,有代码提示) 4、中文分词elasticsearch-analysis-ik (ik) 1、下载ela

    elasticsearch-7.17.6及对应版本IK分词

    elasticsearch-7.17.6及对应版本IK分词 适合人群:elasticsearch初学者 Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elastic...

    elasticsearch服务器安装包

    elasticsearch服务器安装包 jar包..3

    Mastering Elasticsearch 2nd

    mastering elasticsearch 的第二版英文版,原来的pdf目录很乱,这个是重新制作的目录书签,和pdf开头的目录完全对应,花了不少时间。

Global site tag (gtag.js) - Google Analytics