How To Elasticsearch默认是提供了一个非常简单的即开即用体验.用户无需修改什么配置就可以直接使用全文检索.结果高亮.聚合.索引功能. 但是想在项目中使用高性能的Elasticsearch,有几方面优化方法最好掌握. 本文就是为了引导如何优化. 常规建议 不要一次返回太大量的搜索结果集 Elasticsearch设计作为一个搜索引擎,非常擅长返回匹配的查询结果.但是,它并不合适像数据库一样,把整个document作为查询结果返回.如果非要这样做,最好还是使用Scroll这个接口来…
来源:http://tinyurl.com/y4gnzbje 第一部分:调优索引速度 第二部分-调优搜索速度 第三部分:通用的一些建议 英文原文:https://www.elastic.co/guide/en/elasticsearch/reference/current/how-to.html ES发布时带有的默认值,可为es的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用es后,你可以作很多的优化以提高你的用例的性能,下面的内…
来源:http://tinyurl.com/y4gnzbje 第一部分:调优索引速度 第二部分-调优搜索速度 英文原文:https://www.elastic.co/guide/en/elasticsearch/reference/current/how-to.html ES发布时带有的默认值,可为es的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用es后,你可以作很多的优化以提高你的用例的性能,下面的内容告诉你 你应该/不应该…
ES 发布时带有的默认值,可为 ES 的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用 ES 后,你可以作很多的优化以提高你的用例的性能,下面的内容告诉你 你应该/不应该 修改哪些配置. 第一部分:调优索引速度 使用批量请求批量请求将产生比单文档索引请求好得多的性能. 为了知道批量请求的最佳大小,您应该在具有单个分片的单个节点上运行基准测试. 首先尝试索引100个文件,然后是200,然后是400,等等. 当索引速度开始稳定时,您知…
JDK本身是提供了一些监控工具,有一些是命令行,也有图形界面.本次介绍命令行如何进行监控. 命令行是非常重要的,因为在我们生产环境基本上是没有图形界面的,完全是通过命令行. 主要内容: JVM的参数类型 运行时JVM参数查看 jstat查看虚拟机统计信息 jmap+MAT实战内存溢出 jstack实战死循环与死锁 JVM参数类型 那么都有哪些JVM参数类型呢?一共分为三大类 标准参数 X参数 XX参数 标准参数 1.-help 2.-server -client 3.-version -show…
1. 近期遇到一个ES内存居高不下的问题,查了查,发现ES有个fielddata,当你发起一个查询,分析字符串的聚合将会被加载到 fielddata,如果这些字符串之前没有被加载过.如果结果中 fielddata 大小超过了指定 大小 ,其他的值将会被回收从而获得空间.默认情况下,设置都是 unbounded ,Elasticsearch 永远都不会从 fielddata 中回收数据.设想我们正在对日志进行索引,每天使用一个新的索引.通常我们只对过去一两天的数据感兴趣,尽管我们会保留老的索引,但…
  基于版本: 2.x – 5.x 在 es 的默认设置,是综合考虑数据可靠性,搜索实时性,写入速度等因素的,当你离开默认设置,追求极致的写入速度时,很多是以牺牲可靠性和搜索实时性为代价的.有时候,业务上对两者要求并不高,反而对写入速度要求很高,例如在我的场景中,要求每秒200w 条的平均写入速度,每条500字节左右 接下来的优化基于集群正常运行的前提下,如果是集群首次灌入数据,可以将副本数设置为0,写入完毕再调整回去,这样副本分片只需要拷贝,节省了索引过程. 综合来说,提升写入速度从以下几方面…
对于索引分片数量,我们一般在模板中统一定义,在数据规模比较大的集群中,索引分片数一般也大一些,在我的集群中设置为 24.但是,并不是所有的索引数据量都很大,这些小数据量的索引也同样有较大的分片数.在 elasticsearch 中,主节点管理分片是很大的工作量,降低集群整体分片数量可以降低 recovery 时间,减小集群状态的大小.很多时候,冷索引不会再有数据写入,此时,可以使用 shrink API 缩小索引分配数.缩小完成后,源索引可删除. shrink API 是 es5.0之后提供的新…
前言 elasticsearch提供了非常灵活的搜索条件给我们使用,在使用复杂表达式的同时,如果使用不当,可能也会为我们带来了潜在的风险,因为影响查询性能的因素很多很多,这篇笔记主要记录一下慢查询可能的原因,及其优化的方向. 本文讨论的es版本为7.0+. 慢查询现象 查询服务超时 最直观的现象就是提供查询的服务响应超时. 大量连接被拒绝 我们有时候写查询,为了图方遍,经常使用通配符*来查询,这有可能会匹配到多个索引,由于索引下分片太多,超过了集群中的核心数.就会在搜索线程池中造成排队任务,从而…
本章讨论搜索速度优化:搜索速度与系统资源.数据索引方式.查询方式等多方面 1.为文件系统cache预留足够的内存 1)应用程序一般情况下,读写都会被操作系统“cache” 2)cache保存在物理内存中,命中cache可以降低对磁盘的读写频率 3)搜索对系统cache很依赖,如果搜索从磁盘读取数据,则一定会产生相对较高的延迟 4)应该至少为系统cache预留一般的可用内存,更大内存可以有更高的cache命中率 5)线上应禁用swap 2.使用更快的硬件 1)写入对CPU更敏感.而搜索对IO能力需…