关于ES集群规模规划

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

在搭建正式的生产集群之前,充分做好硬件和服务器配置以及集群规划是重中之重,磨刀不误砍柴工。

硬件配置推荐

内存

ES排序以及聚合都是高度需求内存的。单机(单节点)64GB是很理想的配置,32GB或16GB也很常见。

不推荐低于8GB,性价比较低,适得其反(很多的小机器也不划算)。

JVM 堆内存:存储关于集群、索引、分片、段和 Fielddata 的元数据。该项较为理想的设置是可用 RAM 的 50%。所以上面的 64GB 内存并不是直接分给ES的 heapsize。

【重要】ES_HEAP_SIZE这个值最大设置30GB,其余的留给OS,因Lucene还要使用 off heap并依赖系统缓存。

Lucene被设计为利用底层操作系统来缓存内存数据结构。Lucene段被存储在单个文件中。因为段是不可变的,这些文件永远不会改变,这使得它们对缓存非常友好.

CPU

多数情况下ES部署对CPU的要求不高。选择现代处理器,2~8核心的机器即可。

在更快的CPU和很多核心之间做选择时,请选择多核。多核心提供的额外并发性的受益远超时钟频率。

现代乱序执行多核向量处理器具有指令级并行技术、向量化SIMD、线程级并行技术、缓存层次及NUMA等许多和代码性能优化相关的特点。

硬盘

磁盘对集群非常重要,在“重写”(write-heavy)场景下最慢的磁盘会成为性能瓶颈。

如果不差钱,SSD优于其他任何旋转存储介质,对查询和索引的性能都有可观的提升。

对全闪存,记得修改IO调度算法为noopdeadline或者none,这可能有奇效。

如果是HDD旋转介质,转速大于15k最好。

建议尽可能使用 SSD,特别是那些运行搜索和索引操作的节点。由于 SSD 存储的成本较高,建议使用热温架构来减少支出。在热数据节点上使用SSD,冷数据节点可以使用HDD。

可以使用RAID 0可以增加磁盘读写速度,不建议用其他RAID方案,Elasticsearch 不需要冗余存储(无需 RAID 1/5/10),日志索引通常至少要有一个副本分片。

不要使用NAS!(官方吐糟,NAS王婆卖瓜自卖自夸,名不副实。)

网络

现代数据中心的千兆和万兆网卡(1 GbE, 10 GbE)网络已经够用,只有个别老旧机房的百兆网显得窘迫。

避免跨数据中心部署ES集群,即使他们被托管在很近的地方。

绝对避免集群跨越很远的地理距离。

集群规划

节点数计算公式

官方有较为清晰的依据容量的计算公式,但是没有什么规则是一成不变的。ES用于广泛的任务且被部署在各种各样的机器上,遵从以下建议是一个良好的开端。

按数据量确定集群规模,需要先确定以下问题的答案:

  • 每天将索引多大的原始数据量(GB)?= Q
  • 数据要保留多少天?= S
  • 强制执行多少个副本分片?= R
  • 内存数据量比率 = 1 : 30 ?

节点数N计算公式:

  1. 原始数据总量D1(GB)= Q * S * ( R + 1 )
  2. 存储所需容量D2(GB)= D1 * (1 + 0.15磁盘水位阈值 + 0.1误差幅度)
  3. 数据节点总数N = CEIL(D2/RAM/30)+ 1

解释:

  • 在确定规模时,我们一般会增加 5% 或 10% 来容纳误差(取0.1),并增加 15% 以保持在磁盘水位线之下。
  • 在大规模部署的情况下,添加一个节点用于故障转移容量会更安全,一般取奇数。
  • 30是内存与数据容量比率,根据用途与性能要求可以调整为30~180。
  • 实际上在计算原始数据总量时还要考虑膨胀系数。参考传送门→

多节点

如果你必须在一台机器上运行多个节点(因为单台机器资源充足,可以部署多个ES节点实例),会增加运维的复杂性,资源利用不均衡的问题也会偶现。虽然一台512GB的机器足够同时运行8个ES的节点(仅需480GB内存),但据压测和经验,最好不要超过6个,尤其是磁盘读写性能一般的时候,单台机器部署多节点的ES性能颇受掣肘,甚至会造成节点短暂地掉线。

根据前述计算公式所需物理机数为:CEIL(N/单机节点数)

参考链接

本文翻译、整理、汇编、补充自elastic官网相关章节。

关于ES分片设置的6个建议

https://www.elastic.co/guide/en/elasticsearch/guide/master/hardware.html#_memory

https://www.elastic.co/blog/benchmarking-and-sizing-your-elasticsearch-cluster-for-logs-and-metrics

Heap: Sizing and Swapping | Elasticsearch: The Definitive Guide [master]文章来源地址https://www.toymoban.com/news/detail-730608.html

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

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

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

相关文章

  • ElasticSearch多数据源配置,连接多个ES集群

    开发时遇到需要连接多个ES的需求,类似于连接多个MySQL数据库一样。 Elasticsearch Java API有四类client连接方式 TransportClient RestClient Jest Spring Data Elasticsearch         其中TransportClient和RestClient是Elasticsearch原生的api。TransportClient可以支持2.x,5.x版本,TransportClient将会在Elasticsea

    2023年04月14日
    浏览(36)
  • 二、Elasticsearch入门必读指南:到底选择哪个ES版本更合适

    为什么写这篇,一是没人讲,二是网上很多同学分享ES相关知识、问题排查等,很多都不讲版本,导致新手在技术选型时不知道选择什么版本,更多的是问题排查时看半天文章却发现版本对不上。所以想通过这篇文章告诉你2024年了,选择什么版本更合适。     ES从发布之初到

    2024年01月21日
    浏览(41)
  • Elasticsearch 集群规模和容量规划

    Cluster — 协同工作的节点组,以保障 Elasticsearch 的运行。 Node — 运行 Elasticsearch 软件的 Java 进程。 Index — 组形成逻辑数据存储的分片的集合。 Shard — Lucene 索引,用于存储和处理 Elasticsearch 索引的一部分。 Segment — Lucene 段,存储了 Lucene 索引的一部分且不可变。 Document —

    2024年01月18日
    浏览(36)
  • Es elasticsearch 十九 kibana 可视化配置图表 及功能 集群部署

    目录 Es kibana 可视化 下载zip 解压  bin/kibana.bat 启动 管理索引管理 吧logstash 存进来的数据 按照 xxx-* 方式 保存索引模式 通过 discove 配置可视化界面 图表数据实时刷新 时序图配置 饼图配置 表格数据配置 添加仪表盘 图表样例 使用后模拟绘制方法好看些 Grok 语法测试工具 集群

    2024年02月08日
    浏览(40)
  • hive 分桶文件的大小多大最合适

    hive 分桶文件的大小多大最合适 Hive 分桶文件大小的最佳选择取决于多个因素,例如数据的大小、查询模式、硬件配置和网络带宽等。一般来说,建议将每个桶的大小控制在128 MB到1 GB之间。 以下是一些关于选择分桶大小的建议: 根据数据大小选择:如果数据集很小,则将桶

    2024年02月17日
    浏览(30)
  • 大规模数据量下ES如何实现高性能检索?

    ElasticSearch,是基于Lucene库的搜索引擎。它提供了一个分布式、多租户的全文搜索引擎,具有HTTP web接口和无模式JSON文档。根据DB引擎排名,Elasticsearch是最受欢迎的企业搜索引擎。ES的特点是分布式、高扩展以及近实时。那么,大规模数据量下ES是如何实现高性能检索的呢? 说

    2024年02月16日
    浏览(87)
  • graylog集群(es+mongo+graylog-sidecar+nginx负载均衡) 全docker配置(3节点)

    注:初始环境等跳过配置 node1 192.168.1.100 mongo:latest elasticsearch-oss:7.10.2 graylog:4.3 node2 192.168.1.101 mongo:latest elasticsearch-oss:7.10.2 graylog:4.3 node3 192.168.1.102 mongo:latest elasticsearch-oss:7.10.2 graylog:4.3  4.1登陆graylog查看system/nodes节点 4.2graylog-sidecar收集日志 创建收集日志的Inputs 建立输入:

    2023年04月09日
    浏览(23)
  • 简单讲讲ES在大数据规模下的性能问题与解决方案(一)

            众所周知,在处理大规模数据量的时候,我们的传统关系型数据库,例如MySQL,Oracle等...它们对于这些大规模数据的处理与计算是非常吃力的,甚至于在内存资源不足的情况下导致在mysql中查询数据失败的情况,甚至由于数据的规模较大,会消耗更多的磁盘空间,得不

    2024年02月04日
    浏览(33)
  • 【ES】ES内存占用高,扩内存,重启服务注意事项

    一、参考资料 Elasticsearch内存占用分析与管理 | Tink\\\'s Blog Elasticsearch JVM 堆内存使用率飙升,怎么办? - 腾讯云开发者社区-腾讯云 ES集群重启注意事项_deng942861的博客-CSDN博客_es 重启 ElasticSearch性能优化实践(JVM调优+ES调优) - 简书 

    2024年02月11日
    浏览(43)
  • Java 中使用 ES 高级客户端库 RestHighLevelClient 清理百万级规模历史数据

    🎉工作中遇到这样一个需求场景:由于ES数据库中历史数据过多,占用太多的磁盘空间,需要定期地进行清理,在一定程度上可以释放磁盘空间,减轻磁盘空间压力。 🎈在经过调研之后发现,某服务项目每周产生的数据量已经达到千万级别,单日将近能产生 两百万 的数据量

    2024年02月11日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包