Scaling qps
Guides Qdrant query throughput (QPS) scaling. Use when someone asks 'how to increase QPS', 'need more throughput', 'queries per second too low', 'batch search', 'read replicas', or 'how to handle more concurrent queries'.From its SKILL.md
npx -y skills add qdrant/skills --skill scaling-qpsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
3.6 KB, as published. Nobody here has run it
Scaling for Query Throughput (QPS)
Throughput scaling means handling more parallel queries per second. This is different from latency - throughput and latency are opposite tuning directions and cannot be optimized simultaneously on the same node.
High throughput favors fewer, larger segments so each query touches less overhead.
Performance Tuning for Higher RPS
- Use fewer, larger segments (
default_segment_number: 2) Maximizing throughput - Enable quantization pinned in RAM to reduce disk IO:
memory: pinnedon Qdrant 1.19 or newer,always_ram: trueon 1.18 or older Quantization - Use batch search API to amortize overhead Batch search
Minimize impact of Update Workloads
- Configure update throughput control (v1.17+) to prevent unoptimized searches degrading reads Low latency search
- Set
optimizer_cpu_budgetto limit indexing CPUs (e.g.2on an 8-CPU node reserves 6 for queries) - Configure delayed read fan-out (v1.17+) for tail latency Delayed fan-outs
Horizontal Scaling for Throughput
If a single node is saturated on CPU after applying the tuning above, scale horizontally with read replicas.
- Shard replicas serve queries from replicated shards, distributing read load across nodes
- Each replica adds independent query capacity without re-sharding
- Use
replication_factor: 2+and route reads to replicas Distributed deployment
See also Horizontal Scaling for general horizontal scaling guidance.
Disk I/O Bottlenecks
If it is not possible to keep all vectors in RAM, disk I/O can become the bottleneck for throughput. In this case:
- Upgrade to provisioned IOPS or local NVMe first. See impact of disk performance to vector search in Disk performance article
- Use
io_uringon Linux (kernel 5.11+) io_uring article - In case of quantized vectors, prefer global rescoring over per-segment rescoring to reduce disk reads. Example in the tutorial
- Configure higher number of search threads to parallelize disk reads. Default is
cpu_count - 1, which is optimal for RAM-based search but may be too low for disk-based search. See configuration reference - If still saturated, scale out horizontally (each node adds independent IOPS)
What NOT to Do
- Do not expect to optimize throughput and latency simultaneously on the same node
- Do not use many small segments for throughput workloads (increases per-query overhead)
- Do not scale horizontally when IOPS-bound without also upgrading disk tier
- Do not run at >90% RAM (OS cache eviction = severe performance degradation)
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most rag retrieval skills give
Counted across 199 of the 213 authors here whose files we hold, read 2026-09-06
- Enable caching for frequent queriesin 14 of 199, across 5 files
- Enable MMR for diverse resultsin 12 of 199, across 5 files
- Enable binary quantization to reduce memoryin 11 of 199, across 4 files
- Initialize the database with dimensions matching the embedding modelin 11 of 199, across 4 files
- Start the similarity threshold at 0.7in 11 of 199, across 4 files
- Check database statistics when diagnosing slow searchin 11 of 199, across 4 files
- Export and import vectors as JSONin 10 of 199, across 3 files
- Match index dimension to the embedding modelin 10 of 199, across 9 files
- Order filters cheap before expensivein 9 of 199, across 2 files
- Generate a runnable scaffold in the user's stackin 9 of 199, across 2 files
- Recommend multi-action scoring when frequent tuning is expectedin 9 of 199, across 2 files
- Batch store documents for bulk insertsin 9 of 199, across 2 files
Said here and by no other author read
- Limit background optimization with optimizer_cpu_budget
- Use fewer, larger segments for throughput
- Enable quantization pinned in RAM
- Use the batch search API to amortize overhead
- Configure update throughput control to protect reads
- Configure delayed read fan-out for tail latency
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.