elasticsearch 优化
ES 手册
如何提高ES的性能
不要返回较大的结果集
ES是设计成一个搜索引擎的,只擅长返回匹配查询较少文档,如果需要返回非常多的文档需要使用Scroll。
避免稀疏
因为ES是基于Lucene来索引和存储数据的,所以对稠密的数据更有效。Lucene能够有效的确定文档是通过一个整数的文档id,无论有没有数据都会话费一个字节存储id。稀疏主要影响norms和doc_values,一些可以避免稀疏的推荐:
避免将不相关的数据放到相同的索引中
规范的文档结构
使用相同的字段名来保存同样的数据。
避免类型
不用norms和doc_values在稀疏字段
调整索引速度
使用bulk请求
并且每个请求不超过几十M,因为太大会导致内存使用过大
使用 multiple workers/threads发送数据到ES
多进程或者线程,如果看到TOO_MANY_REQUESTS (429)和EsRejectedExecutionException则说明ES跟不上索引的速度,当集群的I/O或者CPU饱和就得到了工作者的数量。
增加刷新间隔
index.refresh_interval默认是1s,可以改成30s以减少合并压力。
在加载大量数据时候可以暂时不用refresh和repliccas
index.refresh_interval to -1 and index.number_of_replicas to 0
禁用swapping
禁用swapping
给文件缓存分配内存
缓存是用来缓存I/O操作的,至少用一般的内存来运行ES文件缓存。
使用更快的硬件
使用SSD作为存储设备。
使用本地存储,避免使用NFS或者SMB
注意使用虚拟存储,比如亚马逊的EBS
索引缓冲大小
indices.memory.index_buffer_size通常是JVM的0.1,确保他足够处理至多512MB的索引。
调整搜索速度
给文件系统缓存大内存
至少给可用内存的一半到文件系统缓存。
使用更快的硬件
使用SSD作为存储设备。
使用性能更好的CPU,高并发
使用本地存储,避免使用NFS或者SMB
注意使用虚拟存储,比如亚马逊的EBS
文档建模
避免链接,嵌套会使查询慢几倍,而亲自关系能使查询慢几百倍,所以如果同样的问题可以通过没有链接的非规范回答就可以提升速度。
预索引数据
不明觉厉
映射
数值型数据不一定要映射成整形或者长整型
避免scripts
如果实在要使用,就用painless和expressions
强势合并只读索引
https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-forcemerge.html
不要强势合并正在写的索引
准备全局顺序
准备文件系统缓存
index.store.preload,如果内存不是很大会使搜索变得缓慢。
调整磁盘使用
禁用不需要的功能
不需要过滤时可以禁用索引“index”:false
如果你不需要text字段的score,可以禁用”norms”:false
如果不需要短语查询可以不索引positions"indexe_options":"freqs"
不用默认的动态字符串匹配
不要使用_all
使用best_compression
使用最小的足够用的数值类型
byte,short,integer,long
half_float,float,double
https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-create-index.html#mappings
https://www.elastic.co/guide/en/elasticsearch/reference/master/index-modules.html#dynamic-index-settings
https://www.elastic.co/guide/en/elasticsearch/reference/master/search-request-scroll.html
elasticsearch 优化的更多相关文章
- elasticsearch(六) 之 elasticsearch优化
目录 elasticsearch 优化 从硬件上 : 从软件上: 从用户使用层 elasticsearch 优化 从硬件上 : 使用SSD 硬盘,解决io导致的瓶颈. 增大内存 但不超过32G(单实例 ...
- Elasticsearch优化 & filebeat配置文件优化 & logstash格式配置 & grok实践
Elasticsearch优化 & filebeat配置文件优化 & logstash格式配置 & grok实践 编码转换问题(主要就是中文乱码) (1)input 中的cod ...
- 亿级规模的Elasticsearch优化实战
Elasticsearch 的基本信息大致如图所示,这里就不具体介绍了. 本次分享主要包含两个方面的实战经验:索引性能和查询性能. 一. 索引性能(Index Performance) 首先要考虑的是 ...
- ElasticSearch优化系列六:索引过程
大家可能会遇到索引数据比较慢的过程.其实明白索引的原理就可以有针对性的进行优化.ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用tranlog进行各节点之间的数据平衡. ...
- ElasticSearch优化系列三:机器设置(内存)
heap参数设置优化 命令行修改 ./bin/elasticsearch -Xmx10g -Xms10g xmx-JVM最大允许分配的堆内存,按需分配 xms-JVM初始分配的堆内存 此值设置与-Xm ...
- ElasticSearch优化系列一:集群节点规划
节点职责单一,各司其职 elasticSearch的配置文件中有2个参数:node.master和node.data.这两个参 数搭配使用时,能够帮助提供服务器性能. 数据节点node.master: ...
- ElasticSearch优化配置
################################################################### /etc/elasticsearch/elasticsearch ...
- ElasticSearch优化系列七:优化建议
尽量运行在Sun/Oracle JDK1.7以上环境中,低版本的jdk容易出现莫名的bug,ES性能体现在在分布式计算中,一个节点是不足以测试出其性能,一个生产系统至少在三个节点以上. ES集群节点规 ...
- ElasticSearch优化系列四:ES的heap是如何被瓜分掉的
以下分别解读几个我知道的内存消耗大户: Segment Memory Segment不是file吗?segment memory又是什么?前面提到过,一个segment是一个完备的lucene倒排索引 ...
随机推荐
- MyEclipse编码设置及字体设置等
原文: http://wenku.baidu.com/link?url=GTo5q8E1iVRYIYa-AiDP6_PJ4sQk7j1SPTr-CthVBw9hTGLPgR4TOeq9o8Sg0yEJ ...
- javax.el.PropertyNotFoundException 出错
之所以是把他记下来,是因为这个低级错误 害的我找了老半天. 后台传了对象到页面,在页面中循环遍历获得对象某个属性值 如下: <c:forEach items="${resultMap. ...
- 常用ADC滤波处理
#define N 70 XDATA WORD Value_buf[N]; XDATA DWORD ADCValue; static BYTE v_gu8cnt=0; static BYTE i=0; ...
- js跨域那些事
原文:http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html 什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其 ...
- OpenStack云计算快速入门之二:OpenStack安装与配置
原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...
- CentOS使用yum源中自带的rpm包安装LAMP环境
CentOS使用yum源中自带的rpm包安装LAMP环境.这是Linux下安装LAMP的环境一种最基本最简便的方式.新手可以从容安装使用. 1. 安装基础包(可选安装)yum install -y w ...
- Caffe源码解析6:Neuron_Layer
转载请注明出处,楼燚(yì)航的blog,http://home.cnblogs.com/louyihang-loves-baiyan/ NeuronLayer,顾名思义这里就是神经元,激活函数的相应 ...
- 使用Struts2实现数据校验
使用Struts2实现数据校验 为什么需要数据校验呢?答案很简单,假如当你登录想要京东,这时就需要数据校验了如果不输入用户名的话,那么就不会登陆成功,并且会提示出"请输入用户名"的 ...
- CWMP开源代码研究1——开篇之作
原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 声明:本系列涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅 ...
- Git的Patch功能
转自:http://www.cnblogs.com/y041039/articles/2411600.html UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因 ...