ElasticSearch 2 (11) - 节点调优(ElasticSearch性能)
ElasticSearch 2 (11) - 节点调优(ElasticSearch性能)
摘要
一个ElasticSearch集群需要多少个节点很难用一种明确的方式回答,但是,我们可以将问题细化成一下几个,以便帮助我们更好的了解,如何去设计ElasticSearch节点的数目:
- 打算处理多少数据?
- 打算处理多少搜索请求?
- 请求的复杂度是怎样?
- 每个节点有多少资源数?
- 打算建立多少索引,支持多少应用?
版本
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 2 (11) - 节点调优(ElasticSearch性能)的更多相关文章
- 二十种实战调优MySQL性能优化的经验
二十种实战调优MySQL性能优化的经验 发布时间:2012 年 2 月 15 日 发布者: OurMySQL 来源:web大本营 才被阅读:3,354 次 消灭0评论 本文将为大家介 ...
- Spark调优_性能调优(一)
总结一下spark的调优方案--性能调优: 一.调节并行度 1.性能上的调优主要注重一下几点: Excutor的数量 每个Excutor所分配的CPU的数量 每个Excutor所能分配的内存量 Dri ...
- Mysql数据库调优和性能优化的21条最佳实践
Mysql数据库调优和性能优化的21条最佳实践 1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开 ...
- Spark调优,性能优化
Spark调优,性能优化 1.使用reduceByKey/aggregateByKey替代groupByKey 2.使用mapPartitions替代普通map 3.使用foreachPartitio ...
- Java生鲜电商平台-API请求性能调优与性能监控
Java生鲜电商平台-API请求性能调优与性能监控 背景 在做性能分析时,API的执行时间是一个显著的指标,这里使用SpringBoot AOP的方式,通过对接口添加简单注解的方式来打印API的执行时 ...
- Mysql数据库调优和性能优化
1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是mysql数据库的默认设置性能非常 ...
- jvm系列(五):tomcat性能调优和性能监控(visualvm)
tomcat服务器优化 1.JDK内存优化 根据服务器物理内容情况配置相关参数优化tomcat性能.当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃.因此一般建议堆的最 ...
- Linux系统性能调优之性能分析
1.Linux性能分析的目的1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈):2)提供性能优化的方案(升级硬件?改进系统系统结构?):3)达到合理的硬件和软件配置:4)使系统资源使用达到最大的平衡.(一 ...
- 二十种实战调优MySQL性能优化的经验
http://www.searchdatabase.com.cn/showcontent_58391.htm [为查询缓存优化你的查询] 像 NOW() 和 RAND() 或是其它的诸如此类的S ...
随机推荐
- MyBatis的javaType和ofType的区别
javaType和ofType都是用来指定对象类型,保证了类型安全.反向用select是必须要用ofType.javaType是指POJO类中的属性类型,比如下面的id,text,url,parent ...
- Scala学习之路 (二)使用IDEA开发Scala
目前Scala的开发工具主要有两种:Eclipse和IDEA,这两个开发工具都有相应的Scala插件,如果使用Eclipse,直接到Scala官网下载即可http://scala-ide.org/do ...
- PAT B1034 有理数四则运算 (20 分)
本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前 ...
- springbatch入门练习(第一篇)
先搞懂几个概念 Job Respository: 作业仓库,负责Job.Step执行过程中的状态保存 Job launcher: 作业调度器,提供执行Job的入口 Job:作业,由多个step组成,封 ...
- Jmeter上传下载文件
每次使用时都会忘记,此处是存储网路上通用的方式. 1.上传文件 记得勾选“use multipart/form-data for post”,表明此请求包含文件信息.在信息请求头中,需加入“Con ...
- Android 写一个Activity之间来回跳转的全局工具类(主要是想实现代码的复用)
废话不多说了,直接上代码,相信大家都能看得懂的. 一.主要工具类 package com.yw.chat.utils; import android.app.Activity; import andr ...
- TTL,COMS,USB,232,422,485电平之详细介绍及使用
如有错误敬请指导! 今天来详细介绍一下TTL,COMS,USB,232,422,485电平,以及之间的转换问题. 有些地方的引脚图可能不是规范的,具体引脚以自己的模块资料为主,这篇文章着重介绍使用.. ...
- iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言: 今天给大家 ...
- 2017-2018-2 20155315《网络对抗技术》Exp8 :Web基础
实验目的 理解HTML,学会Web前端.Web后端和数据库编程及SQL注入.XSS攻击测试 教程 实验内容 操作程序规律 运行脚本或可执行文件 查看配置文件 出错找日志 Web前端HTML 能正常安装 ...
- Ueditor使用笔记
富文本编辑器在javaweb项目中还是比较常见的,如:ckeditor.kindeditor.ueditor等.今天主要叙述的对象为ueditor,它属于百度的.闲话不多说,下面开始介 ...