Elasticsearch(ES)配置及优化

这篇具有很好参考价值的文章主要介绍了Elasticsearch(ES)配置及优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Elasticsearch中,索引的大小和存储能力取决于多个因素,包括文档大小、索引的分片数、硬件规格、查询负载和其他因素。

  1. 索引和分片配置:索引和分片的数量和配置会对查询并发性能产生影响。如果索引和分片的数量太少,可能会导致查询性能不佳,而如果数量过多,可能会增加网络和节点之间的通信开销。因此,需要根据实际的查询负载和数据量进行合理的索引和分片规划。

  1. 硬件资源:硬件资源,如CPU、内存、磁盘I/O等也会影响查询并发性能。更高的CPU核心数和更大的内存可以帮助提高查询并发性能,而更快的磁盘I/O速度可以帮助提高查询响应速度。

  1. 查询负载:查询负载的复杂度和大小也会影响查询并发性能。如果查询包含大量聚合操作或复杂的脚本字段,可能会导致查询响应时间变慢,并且限制了并发查询的数量。

  1. 网络和通信:Elasticsearch集群中的网络和通信开销也会对查询并发性能产生影响。如果网络延迟或带宽限制较大,可能会导致查询响应时间变慢,并降低并发查询的数量。

  1. 调优和优化:对Elasticsearch进行调优和优化可以帮助提高查询并发性能。例如,使用合适的查询类型和查询参数、优化索引和分片配置、配置合适的缓存和连接池等等。

优化

  1. 分布式架构:对于大规模数据存储和高并发查询的场景,通常采用分布式架构,将数据分散到多个节点上,以便能够扩展和平衡查询负载。Elasticsearch可以使用多个节点组成集群,每个节点存储一部分数据,并且负责处理查询请求,这样可以实现数据的水平扩展和查询负载的负载均衡。

  1. 分片和副本:在Elasticsearch中,可以将一个索引分成多个分片,每个分片可以存储一部分数据,以便能够并行处理查询请求。同时,可以使用副本来提高查询性能和容错性,当主分片不可用时,副本可以接管查询请求。因此,可以将索引分成多个分片,并创建多个副本,以便能够处理高并发查询。

  1. 硬件配置:对于大规模数据存储和高并发查询的场景,需要使用高性能的硬件资源来支撑查询负载。例如,使用16核CPU和64GB内存的服务器可以提供更高的处理能力和内存容量,以便能够支持更多的查询并发和更大的数据量。

  1. 查询优化:可以通过查询优化来提高查询性能。例如,可以使用合适的查询类型和查询参数来减少查询的响应时间,或者使用缓存和连接池等技术来缓存查询结果和减少网络通信开销。

  1. 网络和通信:由于Elasticsearch是分布式系统,查询需要在不同的节点之间进行通信,因此需要确保网络和节点通信的稳定性和高效性。可以使用负载均衡器和DNS轮询等技术来分布查询负载,并使用高速网络连接来提高通信速度和可靠性。

  1. 需要注意的是,以上是一些常规的优化和配置建议,具体的优化和配置策略还需要根据实际的硬件和查询负载等因素进行测试和优化。因此,建议进行基准测试来确定最佳的配置和优化策略,以获得最佳的查询性能和响应时间。

场景

在平均文档大小约为1-2KB的情况下,一台拥有32GB内存的机器可以在一个具有50个字段的Elasticsearch索引中存储数十亿个文档,假设查询不太复杂,且索引和搜索流量不太大,可以进行2000个并发查询,QPS能达到上万。

分片数量越多,索引可以存储的数据量就越大,因为数据可以更好地分布在不同的分片之间,从而提高了查询性能和可伸缩性。然而,分片数量也会增加Elasticsearch集群的复杂性和维护成本,因此需要进行谨慎的规划和测试。

一般来说,每个分片的推荐大小应该在20GB以下,这意味着在一个有100个分片的索引中,总存储量可能最多达到数TB。但是这只是一个粗略的估计,具体取决于实际的硬件和查询负载等多个因素,因此建议进行负载测试和基准测试,以确定最佳的分片和硬件配置。

需要注意的是,实际可存储的数据量和可处理的查询并发性取决于各种因素,因此最好进行负载测试和基准测试,以确定特定用例的最佳配置。

分片导致的统计误差

在 Elasticsearch 中,分片的数量是一个非常重要的参数,它可以决定索引数据的分布和查询的并发能力。在一些情况下,分片的数量会对分片统计数量产生影响,使其不准确。

具体来说,当一个索引中的数据量比较小,并且分片数量比较多时,分片统计数量可能会不准确。这是因为 Elasticsearch 统计分片数量是通过查询每个分片的文档数并相加得到的,如果分片数量太多,每个分片的文档数会比较少,这会导致文档数统计的误差变大。

此外,在使用分片副本时,分片统计数量也可能会不准确。分片副本是 Elasticsearch 用来提高数据可用性和查询性能的一种机制,副本与主分片的文档数量一样,但是分片统计数量却不包括副本。如果在查询时包含了分片副本,就会导致文档数统计的误差。

需要注意的是,分片统计数量的不准确并不会影响实际查询结果,因为 Elasticsearch 在查询时会遍历每个分片来计算结果,而不是依赖于分片统计数量。因此,如果分片数量不是非常多,或者查询条件比较简单,分片统计数量的误差可以忽略不计。但是,在某些需要准确文档数的场景下,例如使用 Elasticsearch 进行数据统计和分析时,可能需要使用其他方法来计算文档数,例如使用聚合查询等方式。文章来源地址https://www.toymoban.com/news/detail-400769.html

到了这里,关于Elasticsearch(ES)配置及优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ElasticSearch】更新es索引生命周期策略,策略何时对索引生效

    大家好,我是好学的小师弟,今天和大家讨论下更新es索引生命周期策略后,策略何时对索引生效 结论: 若当前索引已应用策略A(旧),更新完策略A后,新的策略A会立即对原来的已经应用该策略的索引生效;若当前索引符合新策略A的生命周期变化条件,则会自动进入下一阶段

    2024年02月07日
    浏览(32)
  • elasticsearch(三)-- 理解ES的索引操作

    上一章我们主要学习了es的几个客户端,那么我们后面也主要通过kibana客户端、HighLevelClient高级客户端这两个来学习es. 这一章的学习我们主要是学习一些Elasticsearch的基础操作,主要是深入一些概念,比如索引的具体操作,映射的相关语法,对数据类型,文档的操作。那么主要

    2024年02月04日
    浏览(38)
  • ElasticSearch---查询es集群状态、分片、索引

    查看es集群状态: 如果?后面加上pretty,能让返回的json格式化。 加上?v的返回结果,如下: 解释如下: 查看es分片信息: 查看es分片信息,模糊匹配,比如匹配test: 返回信息如下: 解析如下: 查看状态为unassigned的es分片信息: 查看es索引 查看es所有索引: indices表示索引,是

    2024年02月02日
    浏览(33)
  • es elasticsearch 新增更新索引,新增更新文档

    先新增索引 新增映射  或者上述两步和为一步(创建索引,及创建mapping) 只能增加原有不存在的字段 创建一个全新的索引,映射包含调整后的字段或类型 将原有索引的数据迁移到新的索引 删除原有索引 将新的索引的别名设置为原来索引相同名称 创建一个 重建文档(全量

    2024年02月11日
    浏览(30)
  • 【elasticsearch】修改es集群的索引副本数量

    最近海外es集群进行调整,从3节点变成了单节点。所以需要将集群模式改为单点模式,并需要将es 集群的全部索引副本个数改为0,不然会有很多未分配的分片,导致集群状态为 yellow 。 1. 先将现有的index的副本数量为0个 此步骤是为了解决现有的索引副本数。 2. 创建模板匹配

    2024年02月11日
    浏览(39)
  • elasticsearch修改es集群的索引副本数量

    最近es集群进行调整,从2节点变成了单节点。所以需要将集群模式改为单点模式,并需要将es 集群的全部索引副本个数改为0,不然会有很多未分配的分片,导致集群状态为 yellow。 1. 先将现有的index的副本数量为0个 此步骤是为了解决现有的索引副本数。 2. 创建模板匹配所有

    2024年02月08日
    浏览(37)
  • 【ES】Elasticsearch核心基础概念:文档与索引

    es的核心概念主要是:index(索引)、Document(文档)、Clusters(集群)、Node(节点)与实例,下面我们先来了解一下Document与Index。 在讲解Document与Index概念之前,我们先来了解一下RESTful APIs,因为下面讲解Document和Index的时候会使用到。 当我们把es服务器启动起来之后,要怎么调用呢?

    2024年02月05日
    浏览(39)
  • ElasticSearch第十七讲 ES索引别名的使用

    ES中可以为索引添加别名,一个别名可以指向到多个索引中,同时在添加别名时可以设置筛选条件,指向一个索引的部分数据,实现在关系数据库汇总的视图功能,这就是ES中别名的强大之处。别名是一个非常实用的功能,为我们使用索引提供了极大的灵活性,许多ES的API都支

    2024年02月13日
    浏览(33)
  • ES-Elasticsearch查看所有索引及查看某索引下的信息

    1.查看所有索引,地址栏直接访问下面的连接 http://localhost:9200/_cat/indices?vpretty 2.查看某索引下存的信息,查询的信息为索引结构信息(indexName为索引名称) GET方法:http://127.0.0.1:9200/indexName?pretty 3.查看某个索引下的所有文档数据 GET方法:http://localhost:9200/indexName/_search(需带下

    2024年02月11日
    浏览(35)
  • ElasticSearch 实战:ES查询索引文档的6种方法

    在Elasticsearch中,查询索引文档的方法多种多样,这里列举了6种常见的查询方法,其中包括: 简单查询(String Query) 这是最基本的全文搜索,只需在URL后面附加查询字符串即可。例如,对索引 my_index 中的所有文档执行模糊匹配查询: Match Query 类似于简单查询,但提供了更多的

    2024年04月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包