如果我在弹性中有更多的字段会发生什么我知道索引和搜索延迟增加,Ram 和缓存使用增加但有人可以深入解释内部发生的事情, Ram中存储了什么样的数据/数据结构 为什么CPU会增加,GC也会增加吗
从我收集的信息来看,这些信息处于集群状态,需要传播到每个节点,所以它越大,它变得越昂贵,但有人可以在这一切中投入更多细节
在 Elasticsearch 和 OpenSearch 中,数据数量 或字段数量的增加对每个节点指标都有影响。 字段数据缓存分配** 定义节点在内存/RAM 中存储的数据量。这在 Amazon OpenSearch Service 中通常设置为 20%。
实际上,这意味着 20% 的 RAM 被文档缓存占用,使节点能够更快地响应查询和 GET 请求。
关于多节点和传播,数据节点 处理索引和查询,但是,如果您的集群没有专用的主节点,它们还负责在集群中传播数据——取决于数据量,这可能是一个计算-密集型任务。这可能就是您看到 CPU 利用率增加的原因。
如果实例健康/指标成为问题,添加专用主节点肯定会减少数据节点上的计算(CPU)压力。您也可以考虑减少字段数据缓存分配,但这会影响性能。 AWS 建议 40% 用于较大的指数.
最终,Elastic/OpenSearch 是一个复杂但有效的数据存储和搜索系统。编排集群、分片复制等涉及大量开销。如果它在您的价格范围内,您可能需要考虑 AWS OpenSearch Serverless,它不需要与传统集群相同级别的配置/监控。
** Elasticsearch 7.10.2 的文档