每个 Elasticsearch 节点建议的最大 RAM 和磁盘大小是多少?



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

  1. 不同类型日志的30个字段
  2. 分析仪-这里不是很确定
  3. <
  4. 500用户/gh>
  5. 越快越好
  6. 可以保存1年,但1个月也可以
  7. 至少3个副本
  8. 1×week最近的数据将被搜索更多
  9. 预算→对于硬件几乎是无限的,对于es许可证->没有
  10. 是所有是SSD
  11. 前提上

这取决于:

  1. 您想要搜索多少个字段?
  2. 您希望在每个领域使用哪种分析仪?
  3. 你每分钟有多少用户/搜索?
  4. 什么样的响应时间会让你的用户满意?
  5. 您希望保存数据多长时间?
  6. 什么是复制因子?
  7. 你会对更新的数据进行更多的搜索吗?(冷热溶液)
  8. 你的预算是多少?
  9. 你能负担得起SSD驱动器吗?
  10. 云还是内部部署?

所以你不能仅仅根据数据输入的大小来估计所需的硬件。

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

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

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

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

最新更新