性能

IBM Cloud® Databases for Elasticsearch 部署可以是 扩展为您的使用量,在特定资源条件下配置为 自动缩放,也可以是具有更多 Elasticsearch 节点的 水平缩放。 如果要调整部署的性能,请考虑几个因素。

监视部署

Databases for Elasticsearch 部署提供与 IBM Cloud® Monitoring 服务 的集成,用于基本监视部署上的资源使用情况。 提供了许多可用度量,例如磁盘使用率和 IOPS,以帮助您在部署上配置 自动缩放。 观察使用趋势并配置自动缩放以响应这些趋势可帮助缓解数据库因资源耗尽而变得不稳定之前的性能问题。

Elasticsearch 分片

将索引添加到 Elasticsearch时,它会将数据分割为分片,并将这些分片分布到集群中的节点上。 共享配置允许 Elasticsearch 对所有节点上的数据运行并发操作。 为了获得额外的并行性和性能,将节点添加到 Elasticsearch 集群。 添加节点时,将在集群中自动重新均衡分片,以在所有节点之间分布资源使用情况并提高性能。

内存管理

Elasticsearch 内存分为类别,JVM 堆大小和系统内存。 它使用堆进行内部高速缓存,其余系统内存用于操作系统,文件系统高速缓存和垃圾回收。 分配给堆的内存越多,分配给系统其余部分的内存就越少。

Databases for Elasticsearch 部署将其内存分配策略设置为 50% 堆和 50% 系统内存,最大堆大小为 32 GB。 在某些情况下,即使具有堆限制,将部署扩展至 64 GB RAM 也很有用,因为 Elasticsearch 会利用文件系统高速缓存并减轻磁盘 I/O 利用率的压力。 您可以配置自动缩放以在磁盘 I/O 利用率达到特定阈值时增加内存。

磁盘 IOPS

每秒输入/输出操作数 (IOPS) 受存储卷类型限制。 Databases for Elasticsearch 部署的存储卷是在 每 GB 层 10 IOPS 的块存储耐用卷上 配置的。 达到 IOPS 限制可能会导致数据库响应缓慢或显示为无响应。

索引使用磁盘,因此如果用例写得重,那么索引速度可能会受到可用于部署的 IOPS 的限制。 可以通过 针对磁盘使用情况调整索引 来改善某些瓶颈。 此外,如果工作数据集不适合文件系统高速缓存,那么搜索可以使用磁盘,从而增加 IOPS 负载。 如果用例涉及搜索大型数据集,那么增加部署上的内存可帮助 Elasticsearch 减少对磁盘的依赖。

另一个需要注意的是缺省 Lucene 文件系统管理策略是 niofs,它允许对文件进行并发读取,这也可以受磁盘 I/O 限制约束。 Elasticsearch 文档 中有关文件系统存储类型的信息。

如果需要更多 IOPS,那么可以通过增加磁盘空间来增加可供部署使用的 IOPS 数。 如果您知道索引或使用中增加磁盘 I/O 的趋势,那么可以配置自动缩放以基于 IOPS 增加磁盘。