You need to enable JavaScript to run this app.
导航
提高吞吐
最近更新时间:2025.09.30 16:06:36首次发布时间:2025.09.30 16:06:36
复制全文
我的收藏
有用
有用
无用
无用

背景介绍

什么是吞吐?

吞吐量(Throughput)指的是系统在单位时间内可以处理的请求数。对于向量数据库而言,吞吐的优化主要体现在 数据写入、检索查询、Embedding 向量化等方面。

哪些场景需要优化吞吐?

  • 高并发请求:需要短时间内处理大量检索请求。
  • 大规模数据写入:数据量大,需要高效存储和索引构建。
  • Embedding 向量化任务:涉及大规模向量化计算的场景,如推荐系统、搜索引擎、RAG。

优化方案

通用方法

  • 增加并发请求
    • 在不限流的情况下,尽可能提高并发请求数,以最大化吞吐量。并发请求可以充分利用服务器的计算资源,减少请求排队等待的时间,提高整体吞吐。
  • 调整配额
    • 若数据量特别大,可联系客户支持或产品团队,申请调整配额。具体配额限制参考向量库配额说明文档。

数据写入 QPS 优化

  • 调整写入方式
    • 异步接口
      • 采用异步写入方式,可支持 10000 QPS,减少同步操作的阻塞,提高写入吞吐量。
      • 异步方式可以让请求不必等待写入完成,即可继续处理新的请求,提高系统的并发能力。
    • 已有向量数据写入优化
      • 采用精度无损的向量压缩技术,可降低单条请求的存储和计算成本,提高写入速度。
      • 向量压缩减少了数据存储的大小,使得每次写入操作的 I/O 开销降低,从而提高吞吐。
      • 参考相关文档,选择合适的压缩方法,以在性能与精度之间取得平衡。

量化方式

描述

场景

int8

将4字节的 float 压缩为单个字节,以获取内存和计算延迟的收益,会造成微小的损失精度,比如 cosine 距离会出现大于1的分值。

适用于hnsw、hnsw_hybrid、flat索引算法,距离方式为ip、consine。

float

全精度,未做压缩量化。

适用于hnsw、hnsw_hybrid、flat、diskann索引算法,距离方式为ip、l2、consine。

fix16

将4字节的 float 压缩为两个字节,以获取内存和计算延迟的收益,会造成微小的损失精度。通过损失一定的检索精度,提升检索性能,节约资源成本。

适用于hnsw、hnsw_hybrid、flat索引算法,距离方式为ip、l2、consine。

pq

将高维向量转换为低维码本向量,以减少内存占用并提高搜索效率。

适用于diskann、ivf索引算法,距离方式为ip、l2、consine。

检索 QPS 优化

  • 手动增加 CU 资源
    • 通过增加 CU 资源,预计每 CU 可额外提升 100 QPS
    • 增加计算单元(CU)可直接提升并行计算能力,提高查询的处理速度。
  • 使用更高效的量化方式
    • 切换为 int8 量化,在精度接近的情况下,可大幅提升检索性能。
    • 量化降低了数据存储大小和计算复杂度,使得向量计算更快,从而提高 QPS。
  • 开启自动分片
    • 在需要分片的场景下,尽量启用自动分片,优化查询性能和吞吐量。
    • 自动分片可以将数据分布到多个节点上,提高并行处理能力,减少单个节点的查询负载。

Embedding QPS 优化

  • 图片压缩
    • 采用高效的图片压缩方法,可减少数据传输和计算开销,提高 QPS。
    • 压缩后的图片数据更小,使得网络传输更快,减少请求处理延迟。