【问题标题】:what is the recommended maximum RAM & DISK size per elasticsearch node?每个 elasticsearch 节点的推荐最大 RAM 和磁盘大小是多少?
【发布时间】:2021-01-30 23:30:49
【问题描述】:

请帮助我为估计的每月 100TB 日志构建 elk 集群,所以我想知道日志分析集群的每个弹性搜索节点部分的最大可能内存和存储大小是多少,我听说由于 java 存在一些限制堆内存设置?

  1. 不同类型日志中的 30 个字段
  2. 分析器 - 这里不太确定
  3. 500 个用户
  4. 尽可能快
  5. 可以保留 1 年,但可以保留 1 个月
  6. 至少 3 个副本
  7. 1×week 最近数据将被更多搜索
  8. 预算 -> 硬件几乎没有限制,对于 es 许可证 -> 没有
  9. 是的,都是 SSD
  10. 内部部署

【问题讨论】:

  • 为了获得最佳性能,您应该在每个节点中拥有更少的数据。 (每个节点 6 TB 磁盘、64G 内存和 20 核 CPU)。磁盘水印 85%。所以你每个月需要 60 台服务器。和每年 720 台服务器。尝试每两三个月构建一个新集群。不建议在一个集群中有太多服务器。
  • 如果有任何后续问题,请告诉我们,否则如果有用,请投票并接受答案,在此先感谢:)

标签: elasticsearch


【解决方案1】:

这取决于:

  1. 您希望有多少字段可供搜索?
  2. 您想在每个领域使用哪种分析仪?
  3. 您每分钟有多少用户/搜索?
  4. 多长的响应时间会让您的用户满意?
  5. 您希望将数据保留多长时间?
  6. 什么是复制因子?
  7. 您会在新数据上进行更多搜索吗? (冷热解决方案)
  8. 您的预算是多少?
  9. 你买得起 SSD 驱动器吗?
  10. 云端还是本地?

因此您不能仅根据数据输入的大小来简单地估计所需的硬件。

最好的方法是在实验室中建立一个小型集群并索引一些数据并根据您的实验和您的老板/用户的要求估计最终需求。

听说由于 java 堆内存设置有一些限制?

是的,不建议使用超过 30.5G 堆运行 JVM。因为它浪费内存,会降低性能并使节点更加不稳定,但在某些你不关心性能和稳定性并且拥有 512G RAM 和 72 TB 磁盘的实现中,你可以使用上层 32G 堆(这取决于)。

【讨论】:

  • 添加了问题的答案,但这主要是我需要了解的,什么是大节点,什么是小节点?我是否需要创建 1000 个节点或 10 个就足够了,如果超过 64GB RAM 被声称不可用且不稳定,这意味着这是我需要使用的最大大小?
  • @R2D2 这是预算和性能的权衡。小节点集群更昂贵,需要更多维护,并且一次可以响应更多查询。
  • 介意详细说明超过 32g 会使节点“不稳定”吗?确实,由于指针压缩,略高于 30 gigs 并没有什么好处,但如果有足够的内存,它就变得无关紧要了。您可以运行 64 个演出的节点(这恰好是许可时单个 RVU 的 Elastic 的最大值)就好了。
【解决方案2】:

我同意@hamid 的观点,他给出了一个非常详尽的影响 ES 集群大小的因素列表,但是我可以看到您每月有大约 100TB 的大量数据,我的两分钱是,而不是单个大 ES具有许多大型节点的集群,这可能会超过建议的限制 ~31,您可以创建多个小型 ES 集群,或者如果开销太大,则在单个 ES 中添加许多小型节点集群而不是在单个 ES 集群中添加少量大节点。这将以更低的成本为您提供更好的性能,因为 ES 严重依赖堆大小和文件系统缓存,并且拥有大量数据会使缓存变得困难,从而降低 ES 性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2012-08-01
    • 1970-01-01
    • 2023-04-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多