Elasticsearch分片优化】的更多相关文章

原文地址:https://qbox.io/blog/optimizing-elasticsearch-how-many-shards-per-index 大多数ElasticSearch用户在创建索引时通用会问的一个重要问题是:我需要创建多少个分片? 在本文中, 我将介绍在分片分配时的一些权衡以及不同设置带来的性能影响. 如果想搞清晰你的分片策略以及如何优化,请继续往下阅读. 为什么要考虑分片数 分片分配是个很重要的概念, 很多用户对如何分片都有所疑惑, 当然是为了让分配更合理. 在生产环境中,…
一次 ElasticSearch 搜索优化 1. 环境 ES6.3.2,索引名称 user_v1,5个主分片,每个分片一个副本.分片基本都在11GB左右,GET _cat/shards/user 一共有3.4亿文档,主分片总共57GB. Segment信息:curl -X GET "221.228.105.140:9200/_cat/segments/user_v1?v" >> user_v1_segment user_v1索引一共有404个段: cat user_v1_s…
ElasticSearch性能优化主要分为4个方面的优化. 一.服务器部署 二.服务器配置 三.数据结构优化 四.运行期优化 一.服务器部署 1.增加1-2台服务器,用于负载均衡节点 elasticSearch的配置文件中有2个参数:node.master和node.data.这两个参 数搭配使用时,能够帮助提供服务器性能. 1.1> node.master: false    node.data: true 该node服务器只作为一个数据节点,只用于存储索引数据.使该node服务器功能 单一,…
前言 最近一年使用 Elasticsearch 完成亿级别日志搜索平台「ELK」,亿级别的分布式跟踪系统.在设计这些系统的过程中,底层都是采用 Elasticsearch 来做数据的存储,并且数据量都超过亿级别,甚至达到百亿级别. 所以趁着有空,就花点时间整理一下具体怎么做 Elasticsearch 性能优化,希望能对 Elasticsearch 感兴趣的同学有所帮助. 背景 Elasticsearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于…
单机es可以用,没毛病,但是有一点我们需要去注意,就是高可用是需要关注的,一般我们可以把es搭建成集群,2台以上就能成为es集群了.集群不仅可以实现高可用,也能实现海量数据存储的横向扩展. 新的阅读体验地址: http://www.zhouhong.icu/post/138 一.Elasticsearch分片机制: 每个索引可以被分片,每个主分片都包含索引的数据. 副本分片是主分片的备份,主挂了,备份还是可以访问,这就需要用到集群了. 同一个分片的主与副本是不会放在同一个服务器里的,因为一旦宕机…
1.内存优化 在bin/elasticsearch.in.sh中进行配置 修改配置项为尽量大的内存: ES_MIN_MEM=8g ES_MAX_MEM=8g 两者最好改成一样的,否则容易引发长时间GC(stop-the-world) elasticsearch默认使用的GC是CMS GC,如果你的内存大小超过6G,CMS是不给力的,容易出现stop-the-world,建议使用G1 GC JAVA_OPTS=”$JAVA_OPTS -XX:+UseParNewGC” JAVA_OPTS=”$JA…
1,Mac上安装(指定java8) brew cask install java8 vim .base_profile 文件内容: JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1..0_162.jdk/Contents/Home PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar source .base_profile echo…
为什么es需要优化? 答: [root@master elasticsearch-2.4.0]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 6661 max locked memory (kbytes, -l) 64 max…
一.搜索效率优化 批量提交 当有大量数据提交的时候,建议采用批量提交. 比如在做 ELK 过程中 ,Logstash indexer 提交数据到 Elasticsearch 中 ,batch size 就可以作为一个优化功能点.但是优化 size 大小需要根据文档大小和服务器性能而定. 像 Logstash 中提交文档大小超过 20MB ,Logstash 会请一个批量请求切分为多个批量请求. 如果在提交过程中,遇到 EsRejectedExecutionException 异常的话,则说明集群…
调整ES内存分配有多种方式,建议调整 elasticsearch 中的设置(还可以直接修改bin下的启动脚本). # Directory where the Elasticsearch binary distribution resides ES_HOME=/usr/share/elasticsearch # Heap Size (defaults to 256m min, 1g max) # 修改此处即可,ES_HEAP_SIZE表示JVM参数的-Xms and -Xmx设置 ES_HEAP_…
#系统默认的最大打开文件数的限制 vi /etc/security/limits.conf   *     -       nproc          50240    *     -       nofile          20480 #65535   *                -       npro            20480 *                -       nofile          65535 *                -       …
ES索引优化篇主要从两个方面解决问题,一是索引数据过程:二是检索过程.  索引数据过程我在上面几篇文章中有提到怎么创建索引和导入数据,但是大家可能会遇到索引数据比较慢的过程.其实明白索引的原理就可以有针对性的进行优化.ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用tranlog进行各节点之间的数据平衡.所以从上我可以通过索引的settings进行第一优化:  1 "index.translog.flush_threshold_ops": "1…
本文讲述,如何理解Elasticsearch的分片.副本和路由策略. 1.预备知识 1)分片(shard) Elasticsearch集群允许系统存储的数据量超过单机容量,实现这一目标引入分片策略shard.在一个索引index中,数据(document)被分片处理(sharding)到多个分片上.Elasticsearch屏蔽了管理分片的复杂性,使得多个分片呈现出一个大索引的样子. 2)副本(replica) 为了提升访问压力过大是单机无法处理所有请求的问题,Elasticsearch集群引入…
Elasticsearch 项目中使用到Es的父子结构.在数据填充之后,查看每个节点的数据分布情况,发现有的节点数据多,有的节点少的情况,在未使用Es父级结构之前,每个节点的数据分布还算平均,如下图: 左边的数据是未使用父子结构之前每个节点的数据分布数量,右边的是使用了父子结构之后的数据节点分布数量,最下面一行红色的数字是节点平均数量,可以看出,左边的数据与平均值相差不大,右边的数据与平均值最大相差400万,这个差距还是蛮大的,为什么会有这么大的差距呢?围绕着这个问题,进行了一番研究,今天就来学…
ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本.通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题.不能运行的原因可能是内存也可能是存储.由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力.     为了进行分片和副本的操作,ES需要确定将这些分片和副本放到集群节点的哪个位置,就是需要确定把每个分片和副本分配到哪台服务器/节点上. 一.显式控制分配 生产情景: 比如生产环境有…
部署说明 硬件 服务器两台: 机器A:64G内存 机器B:32G内存 分片 共12个节点 2个查询节点,10个存储节点 8个主分片 1个复制分片(每个分片都有一个副本分布在不同的节点上面) 每台机器都挂了6个机械盘每个盘都是不同的分区. 部署环境用Docker weave 来做 elasticsearch cluster 可以参考我的另外一篇博文: http://blog.csdn.net/mrsunnycream/article/details/50921012 就这样环境默默的部署着,一切都…
https://blog.csdn.net/laoyang360/article/details/79253294 1.聚合为什么慢?大多数时候对单个字段的聚合查询还是非常快的, 但是当需要同时聚合多个字段时,就可能会产生大量的分组,最终结果就是占用 es 大量内存,从而导致 OOM 的情况发生. 实践应用发现,以下情况都会比较慢: 1)待聚合文档数比较多(千万.亿.十亿甚至更多): 2)聚合条件比较复杂(多重条件聚合): 3)全量聚合(翻页的场景用). 2.聚合优化方案探讨优化方案一:默认深度…
最近在优化部分业务的搜索吞吐率,结合之前优化过写请求的经验,想和大家讨论下我对es分片在不同场景下的分配策略的思路   原先普通索引我的分片策略是: 主分片=节点数,副本=1,这样可以保证业务数据一定的可用性(丢失一个节点数据完整),且书局是均匀的读写请求在各个节点也是均匀的. 该模式目前看来并不是一个最好的方案,首先对于写请求,请求会优先落到主分片,再由主分片下发到各个副本,默认半数节点同步完返回,主分片=机器数可以保证写请求负载均衡,而1个副本的情况下主分片写成功即可,所以该模式对写还是相对…
摘要:ES已经成为了全能型的数据产品,在很多领域越来越受欢迎,本文旨在从数据库领域分析ES的使用. 本文分享自华为云社区<Elasticsearch数据库加速实践>,原文作者:css_blog . 一.方案说明 Elasticsearch主要功能是什么,不同的场景有不同的定位,在日志场景我们可以用ELK生态搭建日志分析系统,在搜索领域ES是当前最热门的搜索引擎.在大数据领域,ES可以对标Hbase提供海量日志的数据仓库:在数据库领域ES可以作为查询分析型的分析型数据库使用.ES已经成为了全能型…
ES 手册 如何提高ES的性能 不要返回较大的结果集 ES是设计成一个搜索引擎的,只擅长返回匹配查询较少文档,如果需要返回非常多的文档需要使用Scroll. 避免稀疏 因为ES是基于Lucene来索引和存储数据的,所以对稠密的数据更有效.Lucene能够有效的确定文档是通过一个整数的文档id,无论有没有数据都会话费一个字节存储id.稀疏主要影响norms和doc_values,一些可以避免稀疏的推荐: 避免将不相关的数据放到相同的索引中 规范的文档结构 使用相同的字段名来保存同样的数据. 避免类…