Elasticsearch 内存消耗为 11 gb,但 docker 显示为 5gb

Elasticsearch Memory consumption is 11 gb, but docker shows 5gb

我 运行 在 docker 中有两项服务 - 一项用于 elasticsearch,一项用于我的应用程序 我已将 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, 这个怎么理解,哪个数据合适

简单回答:两者都正确。

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

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

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

希望能帮到你