检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Elasticsearch向量检索的性能测试和比较 应用场景 云搜索服务的向量检索引擎提供了全托管、高性能的分布式向量数据库服务。为了方便用户在业务场景进行向量搜索的性能压力测试,为产品选择和资源配置提供准确的参考依据,本文提供了基于开源数据集和开源压力测试工具的Elasticsearch向量检索的性能测试方案。
连通性测试 功能介绍 该接口用于连通性测试。 调用方法 请参见如何调用API。 URI POST /v1.0/{project_id}/clusters/{cluster_id}/logs/connectivity 表1 路径参数 参数 是否必选 参数类型 描述 project_id
连通性测试 功能介绍 该接口用于连通性测试。 调用方法 请参见如何调用API。 URI POST /v1.0/{project_id}/clusters/{cluster_id}/checkconnection 表1 路径参数 参数 是否必选 参数类型 描述 project_id
性能说明 通过Elasticsearch官方提供的benchmark脚本rally1.0.0,对云搜索服务的集群(版本:7.6.2) 进行性能测试。 本次测试采用官方提供的geonames,大小3.2G,11396505个doc。索引采用6个shard(默认为5个)。性能指标说明可以参考官方文档https://esrally
在配置中心页面,单击“连通性测试”。 在连通性测试弹窗中,输入数据源、目的端的IP地址和端口号,单击“测试”。 连通性测试最多可一次性测试10个IP地址。您可以单击“继续添加”,添加多个IP地址,然后单击“批量测试”,进行一次性测试多个IP地址的连通性。 图1 连通性测试 当显示“可用”时
集群承担查询任务。读写分离可以将读写压力分开,提高查询的性能。当主集群无法提供服务时,可以通过主从切换使用从集群提供写入和查询服务,保证业务可以正常进行。 图1 读写分离特性的两种使用场景 场景一(图左):主集群写入,从集群查询,分离读写压力。 场景二(图右):主集群故障时,从集群升级,正常提供服务,避免业务中断。
非安全模式的集群无需安全认证即可访问,采用HTTP协议明文传输数据。建议确认访问环境的安全性,勿将访问接口暴露到公网环境上。 适合内网业务,用于测试场景。 优点:简单,接入集群容易。 缺点:安全性差,任何人都可以访问集群。 安全集群 安全模式+HTTP协议的集群 安全模式的集群需要通过
es-head插件连接Elasticsearch集群报跨域错误 解决方案 在安装es-head的云主机上测试网络是否连通。 网络连通后,登录云搜索服务管理控制台。 在“集群管理”页面,单击需要修改参数配置的集群名称,进入集群基本信息页面。 选择“参数配置”,单击“编辑”,将“http
ceptionHandler来处理异常,且这种方式也不会解决所有的异常。 处理建议 客户端连接池大小建议根据业务实际情况调整。 客户端并发数建议根据业务实际情况调整,或者配置多个节点、分摊压力。 建议配置IOReactorExceptionHandler,可以用来处理一些异常。 调用HLRC时catch
向量检索的客户端代码示例(Python) OpenSearch提供了标准的REST接口,以及Java、Python等语言编写的客户端。 本节提供一份创建向量索引、导入向量数据和查询向量数据的Python代码示例,介绍如何使用客户端实现向量检索。 前提条件 客户端已经安装pytho
向量检索的客户端代码示例(Python) Elasticsearch提供了标准的REST接口,以及Java、Python等语言编写的客户端。 本节提供一份创建向量索引、导入向量数据和查询向量数据的Python代码示例,介绍如何使用客户端实现向量检索。 前提条件 客户端已经安装pyt
asticsearch Unreachable,导致日志无法写入到Elasticsearch里。 原因分析 客户index是单shard,压力承载于单个节点,负载过高,造成队列满后,作业被拒绝。 处理步骤 登录云搜索服务控制台。 选择“集群管理”进入集群管理列表。 选择对应集群操作列“更多”>“Cerebro”。
找到load飙升的集群,单击集群操作列的“Cerebro”进入可视化页面。 查看cpu和heap指标,如果这两个指标过高则说明集群当前压力较大,客户端可以适当减少大请求发送,等待集群压力下降。 查看shards是否合理,官方建议单个shard大小为20-40GB,建议不要超过50GB;单个节点上的同一索引shard数不要超过5个。
如“平均CPU使用率”超过80%或“平均JVM堆使用率”高于70%,则说明集群当前压力较大。 图3 “平均CPU使用率”示例 如果集群压力过大,请降低客户端的请求发送速率或扩容集群。 如果集群压力正常或降低发送请求速率后集群依旧不可用,则执行下一步,查看集群是否存在大量缓存。 在Kibana的“Dev
集群一直处于快照中 集群一直处于快照中,有三个比较常见的原因: 集群数据量大或者集群压力大,备份快照耗时长。 单个节点的快照速度默认是40MB/s,同时,快照的性能还受集群情况影响,如果此时集群负载较高,耗时将会更久。可以通过上述章节的查询单个快照信息查询正在执行的快照情况。 执行GET
向量检索的客户端代码示例(Java) Elasticsearch提供了标准的REST接口,以及Java、Python等语言编写的客户端。 本节提供一份创建向量索引、导入向量数据和查询向量数据的Java代码示例,介绍如何使用客户端实现向量检索。 前提条件 根据集群实际版本添加如下Maven依赖,此处以7
向量检索的客户端代码示例(Java) OpenSearch提供了标准的REST接口,以及Java、Python等语言编写的客户端。 本节提供一份创建向量索引、导入向量数据和查询向量数据的Java代码示例,介绍如何使用客户端实现向量检索。 前提条件 根据集群实际版本添加如下Maven依赖,此处以OpenSearch
非安全模式的集群无需安全认证即可访问,采用HTTP协议明文传输数据。建议确认访问环境的安全性,勿将访问接口暴露到公网环境上。 适合内网业务,用于测试场景。 优点:简单,接入集群容易。 缺点:安全性差,任何人都可以访问集群。 安全集群 安全模式+HTTP协议的集群 安全模式的集群需要通过
塞,可以缓解节点高并发场景下的集群压力,降低P99时延,减少节点不可用的风险。 表1 流量控制策略 策略 描述 相关文档 HTTP/HTTPS流控 HTTP/HTTPS黑白名单设置IP和子网控制客户端IP访问,如果节点IP在黑名单中,则该客户端的连接将直接中断,节点不会处理任何请
Task Unit 关闭聚合增强 开启聚合增强 关闭聚合增强 开启聚合增强 open/close 结论 测试轮次1 测试轮次2 测试轮次3 测试轮次1 测试轮次2 测试轮次3 均值 均值 Min Throughput autohisto_agg ops/s 4.42 4.44 4