es查询大文本效率_超详细的Elasticsearch高性能优化实践.pdfVIP

es查询大文本效率_超详细的Elasticsearch高性能优化实践.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
es查询⼤⽂本效率_超详细的Elasticsearch⾼性能优化实践 ES 性能调优 ES 的默认配置,是综合了数据可靠性、写⼊速度、搜索实时性等因素。实际使⽤时,我们需要根据公司要求,进⾏偏向性的优化。 写优化 假设我们的应⽤场景要求是,每秒 300 万的写⼊速度,每条 500 字节左右。 针对这种对于搜索性能要求不⾼,但是对写⼊要求较⾼的场景,我们需要尽可能的选择恰当写优化策略。 综合来说,可以考虑以下⼏个⽅⾯来提升写索引的性能:加⼤ Translog Flush ,⽬的是降低 Iops、Writeblock。 增加 Index Refresh 间隔,⽬的是减少 Segment Merge 的次数。 调整 Bulk 线程池和队列。 优化节点间的任务分布。 优化 Lucene 层的索引建⽴,⽬的是降低 CPU 及 IO。 ①批量提交 ES 提供了 Bulk API ⽀持批量操作,当我们有⼤量的写任务时,可以使⽤ Bulk 来进⾏批量写⼊。 每次提交的数据量为多少时,能达到最优的性能,主要受到⽂件⼤⼩、⽹络情况、数据类型、集群状态等因素影响。 通⽤的策略如下:Bulk 默认设置批量提交的数据量不能超过 100M。数据条数⼀般是根据⽂档的⼤⼩和服务器性能⽽定的,但是单次批处 理的数据⼤⼩应从 5MB~ 15MB 逐渐增加,当性能没有提升时,把这个数据量作为最⼤值。 我们可以跟着,感受⼀下 Bulk 接⼝,如下所⽰ : $ vi request $ cat request { index : { _index : chandler,_type: test, _id : 1 } } { name : 钱丁君,age: 18 } $ curl -s -H Content-Type: application/json -XPOST localhost:9200/_bulk --data-binary @request; echo {took:214,errors:false,items:[{index:{_index:chandler,_type:test,_id:1,_version:1,result:created,_shards: {total:2,successful:1,failed:0},_seq_no:0,_primary_term:1,status:201}}]} $ curl -XGET localhost:9200/chandler/test/1?pretty { _index : chandler, _type : test, _id : 1, _version : 1, found : true, _source : { name : 钱丁君, age : 18 } } Bulk 不⽀持 Gget 操作,因为没什么⽤处。 ②优化存储设备 ES 是⼀种密集使⽤磁盘的应⽤,在段合并的时候会频繁操作磁盘,所以对磁盘要求较⾼,当磁盘速度提升之后,集群的整体性能会⼤幅度 提⾼。 磁盘的选择,提供以下⼏点建议:使⽤固态硬盘(Solid State Disk)替代机械硬盘。SSD 与机械磁盘相⽐,具有⾼效的读写速度和稳定性。 使⽤ RAID 0。RAID 0 条带化存储,可以提升磁盘读写效率。 在 ES 的服务器上挂载多块硬盘。使⽤多块硬盘同时进⾏读写操作提升效率,在配置⽂件 ES 中设置多个存储路径,如下所⽰: path.data:/path/to/data1,/path/to/data2。 避免使⽤ NFS(Network File System)等远程存储设备,⽹络的延迟对性能的影响是很⼤的。 ③合理使⽤合并 Lucene 以段的形式存储数据。当有新的数据写⼊索引时,Lucene 就会 ⾃动创建⼀个新的段。 随着数据量的变化,段的数量会越来越多,消耗的多⽂件句柄数及 CPU 就越多,查询效率就会下降。 由于 Lucene 段合并的计算量庞⼤,会消耗⼤量的 I/O,所以 ES 默认采⽤较保守的策略,让后台定期进⾏段合并,如下所述 :索引写⼊效 率下降:当段合并的速度落后于索引写⼊的速度时,ES 会把索引的线程数量减少到 1。 这样可以避免出现堆积的段数量爆发,同时在⽇志中打印出“now throttling indexing”INFO 级别的 “警告”信息。 提升段合并速度:ES 默认对段合并的速度是 20m/s,如果使⽤了 SSD,我们可以通过以下的命令将这个合并的速度增加到 100m/s。 PUT /_cluster/settings { persistent : { indices.store.t

文档评论(0)

文库垃圾佬 + 关注
实名认证
文档贡献者

这个人很懒

1亿VIP精品文档

相关文档