gpt4 book ai didi

elasticsearch - 集群中有两个节点的专用机器的 ES_HEAP_SIZE 值

转载 作者:行者123 更新时间:2023-12-02 22:46:35 24 4
gpt4 key购买 nike

我有一台 ES 2.2.0 的专用机器。它在 Windows Server 2012 R2 上运行,具有 128GB 内存。关于 ES,我计划在这台机器上的集群中有两个节点。根据 elasticsearch.yml 中的 ES 推荐:

Make sure that the ES_HEAP_SIZE environment variable is set to about half the memory



我要设置 ES_HEAP_SIZE = 50g
这个值合适吗?

更新

我做了进一步的搜索,发现了这个信息

https://discuss.elastic.co/t/can-i-run-multiple-elaticsearch-nodes-on-the-same-machine/67

看来“ Max heap size for each node instance should be < 32Gb

任何人都可以对此发表评论吗?

最佳答案

最佳做法是 never give more than 32GB将 RAM 分配给 Elasticsearch(31GB 以确保安全),其余的留给文件系统缓存和操作系统。由于 Lucene 不使用太多堆,它将使用大部分剩余的可用资源来管理其段。

这个 32GB 限制的原因是 Java 只能在不分配超过 32GB 的 RAM 的情况下使用压缩指针,如果有更多的 RAM,Java 将重新使用普通指针,并且 CPU 内存带宽性能会降低,即使你有更多的内存。

所以,既然你有一台有大量内存的大机器,你可以做的是在上面运行两个节点,每个节点分配 31GB,剩下 66GB 用于文件系统缓存,Lucene 会很高兴地吞下它来做它的事情。

现在,只要知道如果您在单台机器上运行集群,而那台机器宕机了,那么您的集群就会失败,您的客户端应用程序也会失败。但是,如果你有两台这么大的机器(seems to be the case),那么一定要设置cluster.routing.allocation.same_shard.host: true为了确保主分片和副本分片不在同一主机上,因为您不会从高可用性中受益。

更多信息:

  • 阅读为什么 ES 决定 use compressed oops by default
  • 阅读 compressed oops 背后的详细信息增强
  • 关于elasticsearch - 集群中有两个节点的专用机器的 ES_HEAP_SIZE 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35677741/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com