我们有 4 个分片,每个分片都有 14GB 索引每个分片有一个主分片和 3 个从属分片(每个分片都有 32GB 内存)
我们预计指数规模将在不久的将来增长一倍或三倍。所以我们考虑将我们的索引合并为 28GB 索引,这样每个分片就有 28GB 的索引,并将每个从属服务器上的 RAM 增加到 48GB。
我们在本地进行了更改,并通过向每个具有 14GB 和 28GB 索引的服务器发送相同的 10K 实际查询来测试服务器,我们发现
对于具有 14GB 索引(48GB RAM)的服务器:搜索时间为 480 毫秒,索引命中数:3.8G
对于具有 28GB 索引(48GB RAM)的服务器:搜索时间为 900 毫秒,索引命中数:7.2G
所以我们看到,在 RAM 中拥有整个索引并不能帮助维持搜索时间方面的性能。当索引大小翻倍时,搜索时间线性增加一倍。
我们原本考虑只保留 4 个分片配置,但看起来现在我们必须为每个分片添加另一个分片或另一个从属。
有没有其他方法可以配置我们的服务器,以便即使索引大小增加一倍或三倍,性能也不会受到影响?