0

我正在尝试计算three节点 es 集群中总内存的良好平衡。

如果我有三个节点集群,每个集群都有32G内存,8vcpu。哪种组合更适合平衡所有组件之间的内存?我知道不会有固定的答案,但我只是想尽可能准确。

将使用不同的 elasticsearch 组件是beats(filebeat, metricbeat,heartbeat), logstash, elasticsearch, kibana.

该集群的大多数用例是,应用程序日志被索引并对其运行查询,例如通过 curl 调用获取 7 天、30 天的平均响应时间、过去 24 小时、7 天等有多少不同的状态代码,所以聚合将被使用,其他用例正在监控,通过 kibana 查看日志但没有 ML 作业或仪表板创建等。

经过以下官方文档后,建议设置堆大小如下,

logstash-

https://www.elastic.co/guide/en/logstash/current/jvm-settings.html#heap-size

典型摄取场景的推荐堆大小应不小于4GB且不大于8GB.

elasticsearch-

https://www.elastic.co/guide/en/elasticsearch/reference/current/advanced-configuration.html#set-jvm-heap-size

设置XmsXmx不超过50%您的总内存。Elasticsearch 需要内存用于 JVM 堆以外的用途

Kibana-

我还没有找到 kibana 的默认或推荐内存,但在我们的单节点8G内存测试集群中,它占用1.4G了总数 ( 256 MB/1.4 GB)

beats-

没有找到节拍的默认或推荐内存,但它们也会消耗或多或少。

下面的理想组合应该是什么?

  1. 32G= 16G 用于操作系统 + 16G 用于 Elasticsearch 堆。
    对于来自 16G 操作系统的 logstash 4G,说三个节拍将消耗 4G,kibana 2G
    这使得操作系统只有 6G,如果将来必须安装任何新组件,比如 APM 或任何其他相关的操作系统,那么它们都将只有 6G 和操作系统.

以上是所有组件的官方建议。(即OS 50%,es 50%)

  1. 32G= 8G 用于弹性搜索堆。(25% 用于 elasticsearch)
    logstash 4G + beats 4G + kibana 2G 剩下
    14G 用于操作系统和任何未来的组件。

我错过了一些可以改变这种记忆组合的东西?

任何通过改变上述组合或任何新组合的建议表示赞赏。

谢谢,

4

0 回答 0