Nova向量索引性能测试

更新时间:
复制 MD 格式

本文介绍AnalyticDB PostgreSQLNova向量索引在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机器结果,若需严格产出性能数据,请提工单确认机型。

实例创建成功后,按以下步骤完成账号和网络配置。

  1. 升级内核版本至7.4.2.5或以上。

  2. 创建数据库账号。在控制台左侧导航栏单击账号管理,选择用户账号页签,单击创建初始账号。在弹出的对话框中填写数据库账号名(不能以gppg开头,由小写字母、数字、下划线组成,字符长度为2~16)和密码。

  3. 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版实例控制台的数据库连接页面查看,使用“内网地址”字段的值。userpassword为步骤一中创建的数据库账号和密码。

步骤五:查看测试结果

测试脚本以后台方式运行,使用以下命令查看进度和结果:

tail -f result.log

性能数据

该性能数据为内存型实例规格旟r8i机器结果,若需严格产出性能数据,请提工单确认机型。

本文性能结果采用多次运行后的平均值,不代表单次最优值。

adbpg-nova-recall-qps-zh

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