Elasticsearch集群优化
版本配置:
ES版本:6.2.4
OS内存64G。
一、参数配置:
ES jvm内存31G。
vi /etc/sysctl.conf
vm.swappiness = 1
elasticsearch.yml中,设置这个:bootstrap.mlockall:true
有条件使用更好的硬盘如ssd。
如果有多块盘,每个盘mount到一个目录,data path配置多个。
二、合理的Index Mapping:
1.特殊字段:如Boolean、IP、时间等。
2.字符串:尽量使用keyword,默认的text会被analyze。keyword最大32766字节。
3.调整refresh间隔:refresh_interval: 30s,默认的1秒会导致大量segment产生,影响性能。
4.调整translog刷新机制为异步:
"index": {
"translog": {
"flush_threshold_size": "1gb",
"sync_interval": "30s",
"durability": "async"
}
}
三、缓存参数调整:
设置elasticsearch.yml中:
thread_pool.bulk.queue_size: 1024
indices.fielddata.cache.size: 1gb
indices.queries.cache.size: 1gb
indices.memory.index_buffer_size: 15% (默认10%)
indices.memory.index_buffer_size会影响写入性能,写入的分片数更多,则需要更多的buffer。
熔断circuit-breaker调整(调低):
indices.breaker.total.limit: 50%
indices.breaker.request.limit: 10%
indices.breaker.fielddata.limit: 10%
四、设置合理的分片数和副本数:
1.对于数据量较小(100GB以下)的index:一般设置3~5个shard
2.对于数据量较大(100GB以上)的index:一般把单个shard的数据量控制在20GB~40GB
3.对于30G内存的节点,shard数量最好控制在600个(即每1GB内存的shard数在20以内)
4.副本数:一般副本数为1,对数据可用性有高要求的,可以设置为2
五、段合并Segment Merge
1.通过_forcemerge API进行合并,减少segments数量,同时提高查询效率:
2.max_num_segments取值为:max_num_segments =(单个索引的大小G/分片数/2G)
六、时序数据:
1.合理按天、周、月、年去创建、关闭、删除索引。
2.索引太多时,索引预创建:每天定时任务把明天需要的索引先创建好。
3.从6.7版本开始kibana自带索引生命周期管理ILM(Indice Life Management)
七、查询写入:
1.使用批量请求bulk request。
2.尽量使用自动生成的ID。Elasticsearch自动生成的ID可以确保是唯一的,以避免版本查询。
3.尽量使用filter而不是query。使用filter不会计算评分score,只计算匹配。
4.如果不关心文档返回的顺序,则按_doc排序。
5.避免通配符查询。
6.不要获取太大的结果数据集,如果需要大量数据使用scroll API。
7.避免索引大的document数据,如超过100M的一条document。
参考:
https://cloud.tencent.com/developer/article/1357698
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/general-recommendations.html
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/tune-for-indexing-speed.html
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/tune-for-disk-usage.html
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/circuit-breaker.html
https://www.elastic.co/guide/en/elasticsearch/reference/6.2/modules-indices.html
https://www.elastic.co/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster
Elasticsearch集群优化的更多相关文章
- Elasticsearch 集群优化-尽可能全面详细
Elasticsearch 集群优化-转载参考1 基本配置 基本配置,5台配置为 24C 125G 17T 的主机,每台主机上搭建了一个elasticsearch节点. 采用的elasticsearc ...
- 第九章:Elasticsearch集群优化及相关节点配置说明
Linux系统调优: Linux调整打开文件数(重新启动生效) 在/etc/security/limits.conf在文件中增加: * soft nofile 8192 * hard nofile 2 ...
- elasticsearch集群介绍及优化【转】
elasticsearch用于构建高可用和可扩展的系统.扩展的方式可以是购买更好的服务器(纵向扩展)或者购买更多的服务器(横向扩展),Elasticsearch能从更强大的硬件中获得更好的性能,但是纵 ...
- ElasticSearch 集群 & 数据备份 & 优化
ElasticSearch 集群相关概念 ES 集群颜色状态 ①. - 红色:数据都不完整 ②. - 黄色:数据完整,但是副本有问题 ③. - 绿色:数据和副本全都没有问题 ES 集群节点类型 ①. ...
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- Elasticsearch 集群 单服务器 超级详细教程
前言 之前了解了Elasticsearch的基本概念.将spring boot + ElasticSearch + head插件 搞通之后.紧接着对es进行下一步的探索:集群.查阅资料的过程中,找到了 ...
- Elasticsearch集群架构的部署和调优(一)
[root@es-node1 ~]# mkdir /usr/java[root@es-node1 ~]# tar zxvf jdk1.8.0_131.tar.gz -C /usr/java/ [roo ...
- Azure vm 扩展脚本自动部署Elasticsearch集群
一.完整过程比较长,我仅给出Azure vm extension script 一键部署Elasticsearch集群的安装脚本,有需要的同学,可以邮件我,我给你完整的ARM Template 如果你 ...
- ELK 性能(4) — 大规模 Elasticsearch 集群性能的最佳实践
ELK 性能(4) - 大规模 Elasticsearch 集群性能的最佳实践 介绍 集群规模 集群数:6 整体集群规模: 300 Elasticsearch 实例 141 物理服务器 4200 CP ...
随机推荐
- BZOJ2821 作诗(Poetize) 主席树 bitset
原文链接https://www.lydsy.com/JudgeOnline/problem.php?id=2821 题目传送门 - BZOJ2821 题意 $n$ 个数,$m$ 组询问,每次问 $[l ...
- Cloudera Manager的安装
1. cloudera manager的概念 简单来说,Cloudera Manager是一个拥有集群自动化安装.中心化管理.集群监控.报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个 ...
- PAT (Basic Level) Practise - 害死人不偿命的(3n+1)猜想
题目链接:https://www.patest.cn/contests/pat-b-practise/1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果 ...
- 爬虫3 requests基础
import requests # get实例 # res = requests.get('http://httpbin.org/get') # # res.encoding='utf-8' # pr ...
- Java常用API及Math类
一.API的概述 API——Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用, ...
- docker+springboot+elasticsearch+kibana+elasticsearch-head整合(详细说明 ,看这一篇就够了)
一开始是没有打算写这一篇博客的,但是看见好多朋友问关于elasticsearch的坑,决定还是写一份详细的安装说明与简单的测试demo,只要大家跟着我的步骤一步步来,100%是可以测试成功的. 一. ...
- java菜鸟之微信分享
前言:我终于理解了什么叫做教科书:教科书就是把一些简单容易的知识写成一堆谁都看不懂的书,这,就简称“教科书” 这些天接触到微信分享以及回调的问题,因为之前没接触过,所以这次做这个分享,碰了一点点壁,特 ...
- 2018-7-17-随笔-params和ref、out用法、事件访问器
**************************************************************************************************** ...
- BZOJ.4559.[JLOI2016]成绩比较(DP/容斥 拉格朗日插值)
BZOJ 洛谷 为什么已经9点了...我写了多久... 求方案数,考虑DP... \(f[i][j]\)表示到第\(i\)门课,还有\(j\)人会被碾压的方案数. 那么\[f[i][j]=\sum_{ ...
- 【DWM1000】 code 解密4一 ANCHOR 二进宫testapprun_s
上面我们的代码分析到ANCHOR 调用了一次testapprun_s,但是后面退出后发现还是满足while 条件,逼不得已还得再次调用testapprun_s.testapprun_s 也就是这样一点 ...