百度向量数据库VectorDB是一款纯自研高性能、高性价比、生态丰富且即开即用的向量数据库服务,提供高效的向量索引和相似度查询服务。为了让用户更好地了解VectorDB的性能表现,VectorDB性能白皮书详细描述了性能测试环境、测试方法和测试结果。本章节说明性能测试所需的环境与数据集。
测试实例规格如下表格所示:
该规格所支持的最大向量规模,请参见产品规格,并按照以上规格新建向量数据库实例,具体操作的流程,请参见“快速指南-创建实例”。
与百度云向量数据库实例为同一地域同一VPC内的云服务器,其环境要求如下:
说明:在使用BCC连接VectorDB实例时,需要在BCC关联的安全组中配置出站规则,把百度VectorDB实例的IP及端口添加到出站规则中,避免因为安全组的问题导致连接失败。
我们基于Go语言自研了性能测试工具ann-benchamrk,用于评估近似最近邻(ANN)检索库的性能测试工具,能够避免客户自行解决客户端依赖,快速进行性能测试和对比。它提供了一套标准的测试数据集和评估指标,可以用于比较不同量级数据集下向量数据库的性能表现。
本测试基于该ann-benchmark进行,以下是测试工具的运行方法:
./bin/ann-benchmark-conf./conf/conf.toml
测试过程使用的官方数据集都需要提前下载,测试工具在运行时会检查./dataset目录(ann-benchmark工具的根目录)下是否存在数据集文件,为了确保在使用测试工具时无需另外单独安装环境依赖,百度云向量数据库团队转换提供了parquet文件格式的ann数据集,并制作了Cohere768维度数据集。具体数据集信息,如下表所示:
百度智能云VectorDB采用自研的性能测试工具ann-benchmark进行测试比对,该工具不依赖外部组件,并提供了官方的标准数据集和自制的数据集。本文详细介绍下基于ann-benchmark工具进行数据库性能测试的方法。
vimconf/conf.toml样例配置文件的内容如下所示:
执行如下命令,运行测试工具。其中,-conf指明配置文件路径,配置文件中配置项的含义,请参见上一小节。
cdlinux-ann-benchmark-1.0.1./bin/ann-benchmark-conf./conf/conf.toml
Mochow{M:16,efc:200}{ef:100}82.76%2431.7927其中每一行为一组测试参数下的测试结果,以空格分割开,每一部分的含义如下:
百度智能云VectorDB控制台提供了实例的CPU、内存、QPS、时延等关键性能指标监控,可以在测试过程中观察上述指标的状态,具体观察方法,请参见查看监控数据。
本文的所有测试都是在相同规格的实例下进行的,测试配置如下:
128维数据集下,百度智能云VectorDB与某开源向量数据库的QPS对比结果如下图所示:
详细测试结果如下表所示:
768维数据集下,百度智能云VectorDB与某开源向量数据库的QPS对比结果如下图所示: