【问题标题】:Elasticsearch Memory consumption is 11 gb, but docker shows 5gbElasticsearch 内存消耗为 11 gb,但 docker 显示为 5gb
【发布时间】:2021-10-15 13:04:21
【问题描述】:

我在 docker 中运行两项服务 - 一项用于弹性搜索,一项用于我的应用程序 我已将 elasticsearch 的堆大小设置为 2gb 当我使用此命令检查索引内存时 -

localhost:9200/_cat/indices

我得到了这个数据

yellow open forus-elastic 3AAKxCQfQ9yzdSYz1r7DNw 1 1 1000015 0    11gb    11gb

但是当我在 docker-compose 之前和之后检查我的 docker 内存消耗时,它显示 5-6 gb 消耗,但 elasticsearch 索引消耗是 11 gb, 这个怎么理解,哪些数据合适

【问题讨论】:

    标签: docker elasticsearch docker-compose heap-memory


    【解决方案1】:

    简单的答案:两者都是正确的。

    我强烈假设您使用的是关于分片的默认索引设置。从版本 7 开始,索引默认由 1 个主分片和 1 个副本分片组成。

    cat API 向您显示主分片和副本分片的大小。副本分片是主分片的副本。这就是为什么 Elasticsearch 向您显示的潜在磁盘内存使用量是 docker 显示的信息量的两倍。

    您的索引处于黄色状态。这意味着无法分配副本分片。由于高可用性的原因,Elasticsearch 永远不会在同一节点上同时分配主分片和副本分片。因此,5-6 GB 的副本分片没有考虑在内,因为该分片没有分配给您的单个节点。只有主分片是。

    希望能帮到你。

    【讨论】:

    • 哦,好的,我明白这一点,但这有什么好的做法?是否有必要分配额外的分片?我正在使用单节点集群,不确定是否应该提供许多副本
    • 一个生产集群应该至少包含三个节点。对于开发,单节点集群就可以了。查看这篇关于弹性/高可用性的文章elastic.co/guide/en/elasticsearch/reference/current/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 2017-09-21
    • 2021-01-31
    • 2011-07-19
    相关资源
    最近更新 更多