一、数据库规格
腾讯云向量数据库所属地域为广州,测试实例规格如下所示。
·节点类型:计算型。
·节点规格:P.MEDIUM(4CPU、8GB内存)、P.LARGE(8CPU、16GB内存)
·节点数量:3节点。
该规格所支持的最大向量规模,请参见 配置规格。请按照如上规格购买并新建向量数据库,具体操作,请参见 新建数据库实例。
二、客户端测试环境
与腾讯云向量数据库实例为同一地域同一 VPC 内的 Linux 云服务器 CVM ,其环境要求如下:
·操作系统:TencentOS Server 3.1 (TK4)
·规格:SA3.16XLARGE256。
·已安装 Python 3.6.8 及以上版本。
注意:说明:
注意:使用腾讯云 CVM 连接腾讯云向量数据库(Tencent Cloud VectorDB),在腾讯云 CVM 安全组中需配置出站规则,把腾讯云向量数据库的 IP 及端口添加到出站规则中。在腾讯云向量数据库安全组中配置入站规则,把 CVM 的 IP 地址及向量数据库的端口添加到入站规则中,才能连接成功。具体操作,请参见 安全组。
三、测试工具
开源工具 ann-benchmark 是一个用于评估近似最近邻(ANN)搜索库的性能测试工具。它提供了一套标准的测试数据集和评估指标,可以用于比较不同量级数据库的性能表现。腾讯云向量数据库基于 ann-benchmark 进行数据库性能评测,与竞品公平的进行性能差异对比。如下基于运行工具的命令,介绍其关键参数。
python3 run.py –dataset sift-128-euclidean –local –force –algorithm vector_db –definitions=configs/8c64g/100w-1shard.yml –batch –only_query –runs 1 -k 10
| 参数 | 参数含义 |
| –dataset | 指定数据集的名字,数据集放在 ./data 目录下。 |
| –local | 指定是否在本地运行。 |
| –force | 运行查询测试时,如果历史已经测试过(存在本地测试结果 ),是否继续执行并覆盖。 |
| –algorithm | ann-benchmark 默认支持多种数据库的测试,这里强制指定测试数据库为 vector_db。 |
| –definitions | 指定测试运行时的配置文件。 |
| –batch | 添加该参数后,测试工具会使用 CPU 多核模式压测数据查询,使用的 CPU 核数可以通过配置文件中的 Threads 参数控制。 |
| –runs | 指定查询运行的次数。当运行性能测试时,期望工具能长时间运行时,可将该参数设置为较大值,如999999。 |
| –only_query | 指定是否只运行查询。 因 ann-benchmark 默认的工作方式是先插入数据,再运行查询测试。 但在实际使用中,我们可能存在插入一次数据后,多次进行查询测试的场景。增加该参数后,可以跳过 ann-benchmark 的数据插入阶段。 |
| -k | 希望查询返回的数据条数。 |
四、数据集
ann-benchmark 数据集无需提前下载,测试工具运行时会自动检查 ./data( ann-benchmark 工具存放数据集的路径) 目录下是否存在数据集文件,如果不存在则会主动连接页面下载数据集。ann-benchmark 不具备768维度的数据集,腾讯云向量数据库团队基于中文文本制作了768维度,从100W 到1000W 级别的数据集供测试选用。具体数据集信息,如下表所示。
| 数据集名 | 数据集介绍 | 向量维度 | 向量数 | 索引方法 | 距离类型 |
| sift-128-euclidean | 数据集 | 128 | 1,000,000 | HNSW | L2 |
| gist-960-euclidean | 数据集 | 960 | 1,000,000 | HNSW | L2 |
| chinese100w-768-angular | 腾讯云向量数据库提供的数据集 | 768 | 1,000,000 | HNSW | IP |
| chinese500w-768-angular | 腾讯云向量数据库提供的数据集 | 768 | 5,000,000 | HNSW | IP |
| chinese1000w-768-angular | 腾讯云向量数据库提供的数据集 | 768 | 10,000,000 | HNSW | IP |