Elasticsearch:Elasticsearch 容量规划

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

Elasticsearch 是一个可扩展的分布式系统,可为企业搜索、日志聚合、可观察性和安全性提供解决方案。 Elastic 解决方案建立在一个单一、灵活的技术堆栈之上,可以部署在任何地方。 要在自托管或云端运行生产环境 Elasticsearch,需要规划基础架构和集群配置,以确保健康且高度可靠的性能部署。在本文中,我们将重点介绍如何在部署生产级集群之前根据使用量估算和创建一个实施计划。

Elasticsearch:Elasticsearch 容量规划

容量规划

  • 确定最小主节点数
  • Elasticsearch Service 的规模

确定主节点的最小数量

主节点,也即 master node。有关 master node 的作用我们在文章 “Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica” 已经讲过。集群中最重要的节点是Master节点。 主节点负责集群范围内的各种活动,例如创建、删除、分片分配等。稳定的集群取决于主节点的健康状况。

建议拥有专用主节点(不具有其它的任何角色),因为具有其他职责可能造成超载主节点将使得主节点无法正常运行。 避免 master 因其他任务而超载的最可靠方法是将所有符合 master 资格的节点配置为专用的符合 master 资格的节点,这些节点仅具有 master 角色,从而使它们能够专注于管理集群。

轻量级集群可能不需要 master-eligible 资格的节点,但一旦集群超过 6 个节点,建议使用专用的 master-eligible 节点。选择最小主节点时的决策法定节点数(quorum)使用以下公式计算:

 Minimum Master Nodes = (N / 2) + 1

N 是集群中 master-eligible 节点的总数(四舍五入到最接近的整数)

在理想的环境中,主节点的最小数量为 3,如果不维护,可能会导致 “脑裂”,从而导致集群不健康和数据丢失。

让我们考虑以下示例以更好地理解:

Elasticsearch:Elasticsearch 容量规划
场景 A

在场景 A 中,你有 10 个常规节点(既可以保存数据又可以成为 master 的节点),quorum 为 6。即使我们由于网络连接而失去 master 节点,集群也会选举一个新的 master 并且仍然是健康。

Elasticsearch:Elasticsearch 容量规划
场景 B

在场景 B 中,你有 3 个专用主节点和 100 个数据节点,法定节点数 quorum 为 2。即使我们因故障失去主节点,集群也会选举一个新的主节点并且仍然是健康的。

Elasticsearch:Elasticsearch 容量规划
场景 C

在场景 C 中,你有两个常规节点,quorum 为 2。如果节点之间出现网络故障,那么每个节点都会尝试选举自己作为 Master,从而使集群无法运行。

将值设置为 1 是允许的,但它不能保证在主节点出现故障时不会丢失数据。

注意:避免重复更改主节点设置,因为当服务尝试更改专用主节点的数量时,这可能会导致集群不稳定。

Elasticsearch Service 的规模

Elasticsearch Service 的规模调整更多的是做出有根据的估计,而不是有一个万无一失的方法。 估计更多的是考虑到存储、要使用的服务和 Elasticsearch 本身。 该估计可作为确定大小的最关键方面的有用起点; 用具有代表性的工作负载测试它们并监控它们的性能。

以下是在调整大小之前要记住的关键部分:

  • 用例,(即)用于实时搜索或安全监控、日志分析等。
  • 长期和短期的增长规划

由于 Elasticsearch 是横向可扩展的,如果在初始阶段没有适当地进行适当的索引和分片,那么将不得不通过痛苦的批准来添加硬件,最终将导致基础设施利用率不足。

在选择适当的集群设置之前要记住的三个关键组成部分如下:

  • 计算存储要求
  • 选择分片数量
  • 选择实例类型和测试

选择分片数量

要考虑的第二个组成部分是为指数选择正确的索引策略。 在 Elasticsearch 中,默认情况下,每个索引都分为 n 个主副本。 (例如,如果有 2 个主分片和 1 个副本分片,则分片总数为 4)。 现有索引的主分片数量一旦创建就无法更改。有关分片方面的知识,请参阅   “Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica”。

每个分片都使用一定数量的 CPU 和内存,拥有太多小分片会导致性能问题和内存不足错误。 但这也不能使人有权创建太大的分片。

经验法则是确保分片大小始终在 10–50 GiB 之间。

分片数量的大致计算公式如下:

App. Number of Primary Shards = 
(Source Data + Room to Grow) * (1 + Indexing Overhead) / Desired Shard Size

简单来说,分片大小应该很小,但不能小到底层 Elasticsearch 实例不会对硬件造成不必要的压力。

让我们考虑以下示例以更好地理解:

场景一

假设你有 50 GiB 的数据,并且你不希望它随着时间的推移而增长。 根据上面的公式,分片的数量应该是 (50 * 1.1 / 30) = 2。

注意:选择的所需分片大小为 30 GiB

场景二

假设相同的 50 GiB 预计到明年将翻两番,那么近似的分片数量将为 ((50 + 150) * 1.1 / 30) = 8。

即使我们不会立即拥有额外的 150 GiB 数据,重要的是要注意准备工作最终不会创建多个不必要的分片。 如果您还记得之前的话,分片会消耗大量的 CPU 和内存,在这种情况下,如果我们最终创建小分片,这可能会导致目前的性能下降。

将上述分片大小设为 8,让我们进行计算:(50 * 1.1) / 8 = 每个分片 6.86 GiB。

分片大小远低于建议的大小范围 (10–50 GiB),这最终会消耗额外的资源。 为了解决这个问题,我们应该更多地考虑 5 个分片的中间地带方法,目前有 11 GiB (50 * 1.1 / 5) 个分片和 44 GiB ((50 + 150) * 1.1 / 5) 个分片 未来。

在上述两种方法中,分片大小都是近似值而不是合适的。

非常重要的是要注意,永远不要选择合适的值来设定大小,因为在达到我们设置的阈值限制之前,你就有磁盘空间用完的风险。 例如,让我们考虑一个磁盘空间为 128 GiB 的实例。 如果磁盘使用率保持在 80% (103 GiB) 以下并且分片大小为 10 GiB,那么我们大约可以容纳 10 个分片。

注意:在给定节点上,建议每个 GiB Java 堆中的分片不超过 20 个。

选择实例类型和测试

在计算了存储需求并选择了所需的分片数量之后,下一步就是做出硬件决策。 硬件要求因工作负载而异,但我们可以进行猜测。 通常,每个实例类型的存储限制映射到你的工作负载可能需要的 CPU 和内存量。

在选择正确的实例类型时,以下公式有助于更好地理解:

Total Data (GB) = Raw data (GB) per day * Number of days retained * (Number of replicas + 1)
Total Storage (GB) = Total data (GB) * (1 + 0.15 disk Watermark threshold + 0.1 Margin of error)
Total Data Nodes = ROUNDUP(Total storage (GB) / Memory per data node / Memory:Data ratio)

为了更好地理解公式,让我们考虑以下示例:

Elasticsearch:Elasticsearch 容量规划
选择正确的实例类型

日志记录应用程序每天推送近 3 GiB 数据,数据保留期为 90 天

你可以为这个小型部署使用每个节点 8GB 的内存。 让我们算一下:

总数据 (GB) = 3GB x(3 x 30 天)x 2 = 540GB
总存储空间 (GB)= 540GB x (1+0.15+0.1) = 675GB
总数据节点 = 675GB 磁盘 / 8GB RAM /30 比率 = 3 个节点。

总结到目前为止我们所看到的一切。

更多阅读:

  • Elasticsearch:我的 Elasticsearch 集群中应该有多少个分片?

  • Elasticsearch:如何部署 Elasticsearch 来满足自己的要求文章来源地址https://www.toymoban.com/news/detail-415494.html

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

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

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

相关文章

  • 云计算的容错与容量规划:如何应对高峰和突发事件

    随着云计算技术的发展,越来越多的企业和组织将其基础设施和应用程序迁移到云平台上,以实现更高的灵活性、可扩展性和成本效益。然而,这也带来了一系列挑战,其中最重要的是如何有效地应对高峰和突发事件,以确保云计算系统的稳定运行和高可用性。 在这篇文章中

    2024年04月15日
    浏览(21)
  • 云计算:从基础架构原理到最佳实践之:云计算容量规划与预测

    作者:禅与计算机程序设计艺术 云计算是当前IT领域的一个热门词汇,特别是在互联网公司崛起、移动互联网蓬勃发展的当下,云计算带动了大数据、机器学习、人工智能等新兴技术的迅速发展。随着云计算的不断发展,各种云产品的出现也促使越来越多的企业转向或考虑云

    2024年02月08日
    浏览(52)
  • 云计算:从基础架构原理到最佳实践之:云计算容量规划与资源优化

    作者:禅与计算机程序设计艺术 随着互联网、移动互联网、物联网等新型信息化的发展,以及企业对云计算服务的需求越来越强烈,云计算将成为新的计算模式,以及服务模式,无论是公有云还是私有云,都在不断推陈出新。云计算具有高弹性、自动伸缩、按需付费等优点,

    2024年02月07日
    浏览(35)
  • pvs中pv显示[unknown]解决方法、正确剔除一个vg流程方法【不影响vg已有的lv数据】、vgs容量和硬盘容量显示不一致解决方法

    我记得我操作的时候,需要删除一个vg容量嘛【比如vda3的容量,我将这个vda3的容量从vg中删除,然后没有删除pv,我直接又通过vda3来新创建了一个vg容量,所以就造成了pvs中之前删除的时候没有剔除pv,所以造成了之前vda3的pv名为 unknow device 。 可能说的有点乱,但大概就是这

    2024年02月15日
    浏览(75)
  • 【CSP考题扩展】动态规划入门(1)

    动态规划(Dynamic Programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学等领域中使用的,用来解决特定类型问题的算法思想。其核心思想在于解决复杂问题的过程中,把问题分解为相对简单的子问题,通过解决这些子问题来解决整个问题。以下是动

    2024年04月27日
    浏览(26)
  • 编写生产者和消费者程序,要求:1) 生产者和消费者两个程序,共用一个仓库,仓库是一个普通文件(/tmp/store),容量为100个字节;

    编写生产者和消费者程序,要求: 1)    生产者和消费者两个程序,共用一个仓库,仓库是一个普通文件(/tmp/store),容量为100个字节; 2)    生产者生产资源放进仓库,消费者则从仓库中消费资源;资源为数字字符“1、2、3、4、5、6、7、8、9、0”,一个资源就是一个数字

    2024年02月05日
    浏览(34)
  • Elasticsearch的扩展

      聚合是对文档的统计、分析、计算; 1.1.1 聚合的种类 聚合常见的有三大类: 桶(Bucket)聚合:Bucket聚合根据指定的条件将文档划分到不同的桶(Bucket)中,然后对每个桶中的文档进行统计和计算。桶聚合可以按照某个字段的值、日期范围等条件将文档分组,并统计每组

    2024年02月06日
    浏览(21)
  • Elasticsearch的集群管理与扩展

    Elasticsearch是一个开源的搜索和分析引擎,基于Lucene库构建,具有实时搜索、文本分析、数据聚合等功能。它的核心特点是可扩展性和高性能。随着数据量的增加,Elasticsearch集群管理和扩展成为了关键的技术难题。 Elasticsearch集群是一组Elasticsearch节点组成的,它们共同存储和

    2024年02月20日
    浏览(26)
  • Elasticsearch:使用标记修剪提高文本扩展性能

    作者:来自 Elastic Kathleen DeRusso 本博客讨论了 ELSER 性能的令人兴奋的新增强功能,该增强功能即将在 Elasticsearch 的下一版本中推出! 我们已经详细讨论了 Elasticsearch 中的词汇和语义搜索以及使用向量字段的文本相似性搜索。 这些文章对向量搜索的工作原理提供了精彩、深入

    2024年03月25日
    浏览(33)
  • 开源代码分享(12)—考虑负荷曲线的配电网扩展规划(附matlab代码)

            电力系统(SEP)不断扩展,以满足电力消费者的需求。在这个背景下,配电系统扩展规划(PESD)确定了配电网络扩展的指导方针。除了SEP的扩展之外,现代化和新技术的出现,例如分布式发电(GD)装置,都会影响电力系统,进而影响配电网络的质量和可靠性[1

    2024年02月14日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包