Nova向量索引性能测试
本文介绍AnalyticDB PostgreSQL版Nova向量索引在VectorDBBench基准测试中的性能表现和测试流程。
测试流程
复现过程分为以下5步。AnalyticDB PostgreSQL版实例和ECS客户端需位于同一地域、可用区和VPC。
步骤一:准备AnalyticDB PostgreSQL版实例
在阿里云AnalyticDB PostgreSQL版页面购买实例,建议配置如下。
配置项 | 推荐配置 |
地域和可用区 | 与ECS相同 |
VPC | 与ECS相同 |
引擎版本 | 7.0 |
产品类型 | 标准版 |
实例系列 | 高性能(基础版) |
向量引擎优化 | 开启 |
Master | 32 CU |
Segment | 选择最小规格4C*2即可。测试使用master-only表,计算与存储仅在Master节点,Segment节点资源不利用。 |
机器型号 | 性能数据为内存型实例规格旟r8i机器结果,若需严格产出性能数据,请提工单确认机型。 |
实例创建成功后,按以下步骤完成账号和网络配置。
升级内核版本至7.4.2.5或以上。
创建数据库账号。在控制台左侧导航栏单击账号管理,选择用户账号页签,单击创建初始账号。在弹出的对话框中填写数据库账号名(不能以gp或pg开头,由小写字母、数字、下划线组成,字符长度为2~16)和密码。
将ECS主私网IP加入白名单。在控制台左侧导航栏单击数据安全性,选择白名单设置页签,单击添加白名单分组。在弹出的对话框中填写分组名称,并在组内白名单中填入ECS实例的主私网IP地址。
步骤二:准备ECS客户端
在阿里云ECS页面购买客户端机器,建议配置如下。
配置项 | 推荐配置 |
地域和可用区 | 确保与对应AnalyticDB PostgreSQL版实例配置相同 |
实例规格 | 推荐ecs.g9i.16xlarge。极限性能对客户端并发数有需求。 |
镜像 | Alibaba Cloud Linux 4 LTS 64位 |
存储 | 500 GB。客户端云盘容量需大于500 GB,确保数据集能正常下载。 |
公网IP | 分配公网IPv4地址。VectorDBBench测试需要访问Zilliz OSS校验数据集大小。 |
步骤三:安装VectorDBBench
ECS创建成功后,使用root用户登录客户端。后续安装和测试命令均在该ECS上执行。
执行以下命令安装VectorDBBench:
sudo yum install -y git
sudo yum install -y python3.11 python3.11-devel python3.11-pip
git clone https://github.com/zilliztech/VectorDBBench.git
cd VectorDBBench
python3.11 -m venv ~/.venvs/vdb
source ~/.venvs/vdb/bin/activate
echo 'source ~/.venvs/vdb/bin/activate' >> ~/.bashrc
python -V
# 必须是 Python 3.11.x
python -m pip install --no-cache-dir -U pip setuptools wheel \
-i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install --no-cache-dir -e '/root/VectorDBBench[adbpg]'执行以下命令验证安装:
vectordbbench adbpgnova --help成功标志:命令能正常输出adbpgnova子命令的参数帮助信息,包含--config-file、--case-type、--k等参数说明。
步骤四:下载并运行测试脚本
在ECS上执行以下命令下载脚本:
curl -fsSL -o ./run_adbpg_nova_bench.sh \
https://fastann.oss-cn-hangzhou.aliyuncs.com/vectordbbench/run_adbpg_nova_bench-v20260703.sh
chmod +x ./run_adbpg_nova_bench.sh运行命令:
nohup ./run_adbpg_nova_bench.sh <host> <user> <password> > result.log 2>&1 &脚本参数说明:
参数 | 含义 | 获取方式 |
host | AnalyticDB PostgreSQL版实例内网地址 | 实例“数据库连接”页面的“内网地址” |
user | AnalyticDB PostgreSQL版账号 | 控制台创建账号时设置的数据库账号名 |
password | AnalyticDB PostgreSQL版密码 | 创建账号时设置的密码 |
port | 端口,默认5432 | 一般无需传入 |
db_name | 数据库名,默认postgres | 一般无需传入 |
host可在AnalyticDB PostgreSQL版实例控制台的数据库连接页面查看,使用“内网地址”字段的值。user和password为步骤一中创建的数据库账号和密码。
步骤五:查看测试结果
测试脚本以后台方式运行,使用以下命令查看进度和结果:
tail -f result.log性能数据
该性能数据为内存型实例规格旟r8i机器结果,若需严格产出性能数据,请提工单确认机型。
本文性能结果采用多次运行后的平均值,不代表单次最优值。
BioASQ-1M
BioASQ-1M Top-10
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 90 | 14000 | 0.06 | 1.6 | 0.6±0.1 | 0.7±0.0 | 56,585±2,791 | 0.9345±0.0017 |
Nova | 120 | 14000 | 0.06 | 2.2 | 0.7±0.1 | 0.8±0.1 | 48,061±2,046 | 0.9526±0.0013 |
Nova | 150 | 17000 | 0.06 | 2.3 | 0.8±0.1 | 0.9±0.1 | 42,372±1,625 | 0.9613±0.0012 |
Nova | 190 | 24000 | 0.06 | 4.2 | 1.0±0.1 | 1.1±0.1 | 34,722±1,623 | 0.9706±0.0018 |
Nova | 340 | 27000 | 0.06 | 3.4 | 1.3±0.1 | 1.4±0.1 | 23,919±908 | 0.9843±0.0014 |
BioASQ-1M Top-100
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 50 | 28000 | 0.0 | 1.9 | 1.3±0.1 | 1.5±0.1 | 28,185±537 | 0.9417±0.0007 |
Nova | 220 | 20000 | 0.0 | 1.8 | 1.4±0.1 | 1.6±0.2 | 26,332±498 | 0.9505±0.0006 |
Nova | 270 | 26000 | 0.0 | 2.4 | 1.6±0.1 | 1.9±0.2 | 22,330±515 | 0.9608±0.0004 |
Nova | 390 | 16000 | 0.0 | 1.6 | 1.7±0.1 | 1.9±0.1 | 19,506±756 | 0.9720±0.0004 |
Nova | 280 | 28000 | 0.0 | 5.0 | 2.4±0.2 | 3.1±0.3 | 13,396±323 | 0.9815±0.0003 |
BioASQ-10M
BioASQ-10M Top-10
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 60 | 15000 | 0.06 | 1.3 | 0.7±0.1 | 0.8±0.1 | 49,370±2,035 | 0.9339±0.0026 |
Nova | 80 | 14000 | 0.06 | 1.5 | 0.8±0.1 | 0.8±0.1 | 41,528±2,554 | 0.9445±0.0030 |
Nova | 110 | 19000 | 0.06 | 1.5 | 0.9±0.0 | 1.0±0.1 | 32,909±1,694 | 0.9555±0.0019 |
Nova | 150 | 11000 | 0.08 | 1.3 | 1.1±0.1 | 1.2±0.1 | 26,724±2,600 | 0.9634±0.0022 |
Nova | 230 | 18000 | 0.1 | 1.3 | 1.4±0.1 | 1.6±0.1 | 18,549±3,206 | 0.9723±0.0019 |
Nova | 400 | 24000 | 0.1 | 1.1 | 2.2±0.1 | 2.3±0.1 | 10,868±1,697 | 0.9802±0.0013 |
BioASQ-10M Top-100
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 150 | 22000 | 0.0 | 0.5 | 1.4±0.1 | 1.5±0.1 | 23,327±1,492 | 0.9283±0.0011 |
Nova | 170 | 22000 | 0.0 | 0.4 | 1.5±0.1 | 1.6±0.1 | 20,121±1,952 | 0.9387±0.0010 |
Nova | 220 | 27000 | 0.0 | 1.1 | 1.7±0.1 | 1.9±0.1 | 17,427±1,354 | 0.9554±0.0005 |
Nova | 360 | 29000 | 0.0 | 1.5 | 2.4±0.1 | 2.7±0.1 | 11,241±773 | 0.9708±0.0005 |
Cohere-1M
Cohere-1M Top-10
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 50 | 16000 | 0.08 | 0.6 | 0.5±0.0 | 0.5±0.1 | 89,382±1,476 | 0.9576±0.0015 |
Nova | 50 | 19000 | 0.08 | 1.1 | 0.5±0.0 | 0.5±0.0 | 88,665±1,342 | 0.9783±0.0018 |
Nova | 60 | 14000 | 0.08 | 1.3 | 0.5±0.0 | 0.6±0.1 | 81,752±1,346 | 0.9840±0.0026 |
Nova | 100 | 19000 | 0.08 | 1.6 | 0.7±0.1 | 0.7±0.1 | 60,069±965 | 0.9920±0.0031 |
Cohere-1M Top-100
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 100 | 22000 | 0.0 | 0.4 | 1.0±0.1 | 1.1±0.1 | 49,449±1,075 | 0.9148±0.0013 |
Nova | 120 | 21000 | 0.0 | 0.4 | 1.0±0.1 | 1.1±0.1 | 45,337±936 | 0.9261±0.0010 |
Nova | 100 | 25000 | 0.0 | 1.2 | 1.1±0.1 | 1.2±0.1 | 44,197±843 | 0.9602±0.0010 |
Nova | 120 | 21000 | 0.0 | 1.6 | 1.2±0.1 | 1.4±0.1 | 36,885±611 | 0.9751±0.0009 |
Nova | 190 | 22000 | 0.0 | 1.1 | 1.2±0.1 | 1.3±0.1 | 34,077±530 | 0.9808±0.0009 |
Nova | 280 | 30000 | 0.0 | 2.4 | 1.7±0.1 | 2.0±0.2 | 24,008±260 | 0.9905±0.0005 |
Cohere-10M
Cohere-10M Top-10
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 50 | 18000 | 0.01 | 2.0 | 0.6±0.0 | 0.7±0.1 | 63,476±5,894 | 0.9676±0.0019 |
Nova | 70 | 24000 | 0.01 | 2.9 | 0.8±0.1 | 0.8±0.1 | 50,759±3,335 | 0.9797±0.0006 |
Nova | 90 | 5000 | 0.01 | 2.0 | 0.8±0.0 | 0.8±0.1 | 40,297±1,883 | 0.9811±0.0009 |
Nova | 120 | 13000 | 0.01 | 3.2 | 1.0±0.0 | 1.1±0.0 | 34,542±1,357 | 0.9888±0.0007 |
Cohere-10M Top-100
System | ef | msp | gamma | amp | p95(ms) | p99(ms) | QPS | recall |
Nova | 130 | 9000 | 0.0 | 1.3 | 1.4±0.1 | 1.5±0.2 | 28,318±2,196 | 0.9430±0.0070 |
Nova | 60 | 9000 | 0.0 | 1.4 | 1.5±0.1 | 1.6±0.1 | 26,586±970 | 0.9485±0.0095 |
Nova | 90 | 29000 | 0.0 | 1.7 | 1.7±0.1 | 1.9±0.1 | 21,822±1,025 | 0.9616±0.0003 |
Nova | 160 | 11000 | 0.0 | 2.3 | 2.0±0.1 | 2.1±0.1 | 18,089±1,016 | 0.9715±0.0002 |
Nova | 290 | 22000 | 0.0 | 2.1 | 2.4±0.1 | 2.5±0.1 | 14,239±1,012 | 0.9818±0.0002 |
Nova | 110 | 30000 | 0.0 | 4.6 | 3.8±0.1 | 4.1±0.1 | 9,301±295 | 0.9908±0.0002 |