关于 qdrant-minimize-latency
qdrant-minimize-latency 是一项面向 Qdrant 的调优技能,专注于降低单次查询延迟。内容涵盖分段配置、内存索引、查询参数、存储和 RAM 管理,并区分延迟与吞吐量优化目标。
主要功能
- 01按 CPU 核心数调整分段
- 02将量化向量和 HNSW 保留在内存
- 03以召回率换取查询速度
- 04使用本地 NVMe 存储
- 05管理 RAM 压力与后台索引
适用场景
- 01降低单次查询工作负载的延迟
- 02排查 RAM 导致的延迟下降
- 03在高峰索引时段调整 Qdrant
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ qdrant/ skills --skill qdrant-minimize-latency安装后在 Claude Code 中输入/qdrant-minimize-latency确认已加载。
详细介绍
查询延迟扩展
单次查询的延迟由查询执行路径中最慢的组件决定。它有时与吞吐量相关,但并非总是如此——吞吐量和延迟的优化方向相反。
低延迟优化旨在让单次查询尽可能充分地利用资源,而吞吐量优化旨在尽量减少每次查询的资源使用量,以支持更多并行查询。
降低延迟的性能调优
- 增加分片数量,使其与 CPU 核心数匹配(
default_segment_number: 16)最大限度降低延迟 - 将量化向量和 HNSW 保留在 RAM 中:Qdrant 1.19 或更新版本使用
memory: pinned;1.18 或更早版本中,量化向量使用always_ram: true,HNSW 使用hnsw_config.on_disk: false内存层级 - 在查询时降低
hnsw_ef(以召回率换取速度)搜索参数 - 使用本地 NVMe,避免使用网络存储
内存压力与延迟
RAM 是影响延迟最关键的资源。如果工作集超出可用 RAM,操作系统缓存逐出会导致严重且持续的延迟下降。
- 优先纵向扩展 RAM。工作集超过 80% 时尤其重要。
- 使用量化:标量量化(减少 4 倍)或二进制量化(最多减少 32 倍)量化
- 如果过滤不频繁,将负载索引移至磁盘:Qdrant 1.19 或更新版本使用
memory: cold,1.18 或更早版本使用on_disk: true磁盘上的负载索引 - 设置
optimizer_cpu_budget,限制后台优化使用的 CPU 数量 - 安排索引:在高峰时段设置较高的
indexing_threshold
延迟的纵向扩展
增加 RAM 和使用更快的 CPU 可直接降低延迟。节点规格指南请参阅纵向扩展。
不要这样做
- 不要指望在同一节点上同时优化延迟和吞吐量
- 对延迟敏感的工作负载,不要使用数量少、体积大的分片(每个分片都需要更长的搜索时间)
- 不要让 RAM 使用率超过 90%(缓存逐出会导致严重的延迟下降,且可能持续数天)
- 性能调试时不要忽略优化器状态
- 不要在未进行负载测试的情况下缩减 RAM(缓存逐出可能导致持续数天的延迟故障)
评论
支持 Markdown