背景和原则
本文介绍云搜索服务实例规格资源预估方法,分为通用场景(如文本检索、日志分析等)场景和向量场景(向量存储和搜索),云搜索服务的主要资源为计算资源和存储资源,因此本文重点介绍计算资源和存储资源的预估,包括节点类型、节点规格、节点磁盘空间和节点数量等,实例的资源规格预估遵循以下原则:
- 如果您是从其他厂商或自建搬迁的客户,由于之前的规格是已经经过实际数据和场景的验证,建议直接复用原有 ES/OpenSearch 实例规格和容量,这样最为方便和实用。
- 索引的读写性能与索引 Mapping/Settings 元数据、数据特征、查询语句以及读写 QPS 等有关,因此 ES 资源预估无标准答案,建议您最好根据实际数据和业务场景,测试出适合您实际需求的实例规格和容量。
- 如果无法测试实际场景,您在第一次购买开通之后,强烈建议您对实例、索引、节点等指标进行告警配置,实时关注实例、索引、节点的运行状态,若出现资源不足的告警时,可以快速发现,及时升级到合适的实例规格,以防资源不足影响业务,具体告警指标参考 推荐配置的告警规则。
- 向量场景相比通用场景,需要更多的内存消耗,若预估内存空间不足,容易造成 OOM,强烈推荐以 CPU:内存=1:8 的数据节点规格(例如 4C32G)作为起始配置,存储类型则推荐使用 FlexPL 类型。
- 计算资源的预估的难度远大于存储空间的预估,但是根据火山云搜索服务的实际告警情况来看,磁盘空间更加容易出现容量不足的告警,因此存储空间更需要优先评估。
- 节点磁盘容量大小和节点内存大小具有一定的线性关系,如果有大容量的的磁盘存储需求,建议选择高内存规格的节点,这样可以保障实例的稳定性和性能,需要极力避免存在大量的低规格节点配套大容量磁盘存储的情况。
- 当实例状态正常,但是出现节点资源不足报警而需要扩容时,建议优先进行纵向的规格扩容,例如将节点扩容到 8核32GB 或 16核64GB 的规格(注:该操作会造成实例滚动重启,请在低峰期操作),然后再考虑横向扩容增加节点个数(该操作不会造成实例滚动重启)。
通用场景
适用场景分析
通用场景指的是云搜索服务常用的文本检索、日志分析等场景,通过近实时检索分析超大数据集的能力,配合Logstash/Kibana/Dashboards 等开源组件,以及云搜索自身的内核增强特性,快速构建日志分析、信息检索分析等实际业务。
计算资源预估
云搜索服务的计算资源主要用于在写入和查询,各类因素均会造成资源预估不准,本文提供两种预估思路。
根据业务数据的估算
- 日志类场景多属于写多读少型,计算资源主要用于写入,根据火山的测试数据,2C8G 的节点最大可支持 5000-10000 条日志/秒的写入,根据节点规格增长,基本上可以认为是线性的增长,例如 8C32G 节点可最大支持20000-40000 条日志/秒的写入,建议开始按最小值预估,后根据实际情况进行扩缩容。
- 日志场景若要实现超长时间(例如大于1个月)的存储,建议配置温节点、冷节点进行数据存储,配置数据的生命周期,可以显著降低存储成本,提升实例处理性能,具体参考利用 Data Streams 和 ISM 实现时序数据管理。
- 文本搜索场景如网站搜索、在线搜索场景,与日志场景相反,大多属于读多写少类型,计算资源主要用于查询,根据火山的经验,云搜索服务在不同的数据结构、不同的查询语法、不同的数据大小、不同的写入和查询 QPS 所需的资源均不一样,因此没有标准建议值,建议您实际数据和业务场景测试出适合您实际情况的实例规格和容量。
火山的配置经验值推荐
按照火山的经验值的推荐配置如下: