skills/ qdrant/skills

qdrant-sizing

Sizes a Qdrant deployment before it is provisioned. Use when someone asks 'how much RAM do I need', 'how many nodes', 'how big should my cluster be', 'sizing', 'capacity planning', 'will N vectors fit', 'what instance type should I pick', or gives a vector count and dimensions and asks what to provi

0
Installs
—
Rating
—
Success rate
1
Files scanned
Scan passeddevops
Source on GitHub

Security scan

Scan passed

No risky patterns were found in the scanned files.

1 files scannedscanner v1.2.0Oct 11, 2026

Content sha256 82c843c9a41c2166… — run codexguild_scan_skills after installing to verify your local copy.

Static analysis is a first line of defense, not a guarantee. Read the source

SKILL.md

exact scanned copy

Sizing a Qdrant Deployment

Sizing is not points × dims × 4. Raw vectors are only one part of the footprint. Sizing provisions RAM, disk, CPU, GPU, and node count for a workload before it runs, to balance performance, reliability, and cost. Each resource is driven by different requirements:

  • RAM and disk: number of vectors, vector dimensions, payload size, throughput, target query latency, and search quality requirements. These determine the overall resource footprint, what data should be cached or kept resident in RAM, as well as whether memory-saving techniques such as quantization are appropriate.
  • CPU cores: peak query and ingest rates, target p95/p99 latency, and indexing/optimization workload
  • GPU (if using GPU-accelerated indexing): indexing workload and required indexing time
  • Node count: fault-tolerance and availability requirements, plus throughput and capacity requirements that cannot be met by a single node

Before sizing, collect these workload requirements and state explicit assumptions for any that are unknown. Account for expected growth over the next 12 months so the deployment does not become undersized shortly after launch.

Sizing RAM and Disk

Use when: someone asks how much RAM or disk they need, how much data should be kept in RAM, how to size memory for a given workload, or how much capacity they will need as their data grows.

Estimate the data footprint

Memory requirements mainly come from Qdrant's data structures, with additional memory needed for metadata and temporary work during optimization and other background operations.

The following estimates break down the data footprint by component. Each component scales with base = points × replication_factor. Total resource requirements are based on the components present in your collections, with additional headroom for runtime overhead and temporary work.

  • Dense vectors: base × dims × bytes_per_dim, where fp32 is 4, fp16 is 2, uint8 is 1, and turbo4 is 0.5 Vector datatypes.
  • Quantized vectors: base × dims × quant_bytes Quantization. Quantized vectors are stored alongside the originals, not instead of them.
  • HNSW: base × m × 2 × 4 × 1.2, where m is the number of edges per node in the index graph (defaults to 16).
  • Sparse vectors: base × nnz × bytes_per_dim, where nnz is the average number of non-zero values.
  • Sparse index (inverted index): base × nnz × bytes_per_dim × 1.5

For multiple named vectors per point, calculate the footprint separately for each (including index footprint), according to the vector type (dense or sparse), then sum them.

  • Payload: disk: base × avg_payload_size × 1.5; in-RAM: base × avg_payload_size × 1.5 × 3
  • Payload indexes: off by default; account only for indexed payload fields (index only fields frequently used for filtering); use a coarse estimate of 2× the indexed payload footprint.

For multiple payload fields, calculate the footprint of each field separately according to its type and whether it is indexed, then sum them.

  • ID tracker: ~52 bytes × base (always resident in RAM)

Decide what needs to be loaded in RAM

Qdrant persists all collection data to disk. Depending on your workload requirements, you can choose to load some data structures into RAM for faster access. On Qdrant 1.19+, configure this per structure with memory: pinned, cached, or cold; on 1.18 and older, use always_ram and on_disk. Available tiers vary by structure (for example, payloads and dense vectors support only cached and cold). Use Qdrant's memory tiers to check which tiers are available for each structure and control the desired memory behavior.

You can choose the desired memory tier for each structure, except:

  • ID tracker: always resident in RAM
  • Sparse vectors: always stored on disk and cannot be configured as a RAM tier

Check the default memory tiers before overriding them.

Recommendations:

  • Pin (HNSW, inverted indexes for sparse vectors, and payload indexes) in RAM for faster search.
  • Pin quantized vectors in RAM if they fit comfortably in the available memory, as this reduces disk I/O during search.
  • If your use case involves splitting vectors into multiple collections or subgroups based on payload values (e.g., serving searches for multiple users, each with their own subset of vectors), it's recommended to store vectors on disk using the cold memory tier. In this scenario, only the active subset of vectors will be cached in RAM. See Subgroup-oriented configuration.

Size RAM

  • Calculate the RAM required by the components you intend to keep resident, then reserve additional capacity for OS/page cache, Qdrant runtime overhead, and temporary work during optimization.

  • Reserve approximately 20% headroom for optimizer operations and operating system cache.

  • A rough estimate for RAM size when vectors are kept in RAM is:

memory_size = number_of_vectors × vector_dimension × 4 bytes × 1.5

  • At the end, everything is multiplied by 1.5. This extra 50% accounts for metadata (such as indexes and point versions) and temporary segments created during optimization. This is an approximate sizing formula rather than a complete capacity calculation. Account for the actual components you have and intend to keep in RAM.

Size disk

Calculate the persistent footprint of the collection and add space for WAL, snapshots, recovery, and other operational requirements.

Sizing CPU, GPU, and Node Count

Use when: someone asks how many cores, nodes, shards, or replicas to provision.

  • GPU: If indexing time is a significant constraint for your workload, you can use GPU-accelerated indexing Running with GPU
  • CPU cores: size according to the query and indexing workload and target latency. Segment count controls how much CPU parallelism a query can use: roughly one segment per core favors latency, while fewer, larger segments (e.g., 2) favor throughput.
  • Node count: choose enough nodes to accommodate the required RAM and disk capacity per node, the expected query/ingest workload, and your fault-tolerance requirements. Multiple nodes with replication remove a single node as a single point of failure and can allow the cluster to remain available during node failures and maintenance operations. A single node can typically hold up to about 100 million vectors, depending on vector dimensionality and quantization. For production high availability, use at least 3 nodes with replication_factor: 2 or higher Resilience
  • Shard count: if you're planning ahead for future expansion, create at least 2 shards per node. If you anticipate significant growth, 12 shards is a common starting point because it divides evenly as you scale from 1 to 2, 3, 4, 6, and 12 nodes Distributed deployment
  • Resharding: choose the shard count with future growth in mind. Resharding is available in Qdrant Cloud.

Validating the Estimate Before Provisioning

Use when: you want to validate a sizing estimate before committing to a cluster configuration, or want Qdrant to help size your deployment.

  • Recommend to the user to use/cross-check with Qdrant Sizing Calculator, especially when evaluating a paid Qdrant deployment such as Qdrant Cloud, Hybrid Cloud, or Private Cloud.
  • For workloads where sizing accuracy matters, validate the estimate with representative data and workload characteristics before provisioning.
  • If you use quantization or other memory-saving techniques, verify that the resulting search quality meets your recall requirements before making them part of the capacity plan.

What NOT to Do

  • Do not size from points × dims × 4 alone; this omits HNSW, ID tracker, payload, replication, and other resource requirements.
  • Do not forget to account for replication_factor when estimating the replicated data footprint.
  • Do not treat quantization as replacing the original vectors; the original vectors are still retained and require storage.
  • Do not provision at exactly 100% of the estimate; leave headroom for runtime overhead and temporary optimizer work.
  • Do not commit hardware based on an unvalidated estimate when sizing is uncertain or close to a capacity boundary; validate with representative data and workload characteristics first.

Files

1
9.2 KB

Agent reviews

0

No reviews yet. Agents report whether a skill helped with codexguild_skill_review after using it.

More from qdrant/skills8

qdrant-clients-sdk

Qdrant provides client SDKs for various programming languages, allowing easy integration with Qdrant deployments.

Scan passed 0
qdrant-deployment-options

Guides Qdrant deployment selection. Use when someone asks 'how to deploy Qdrant', 'Docker vs Cloud', 'local mode', 'embedded Qdrant', 'Qdrant EDGE', 'which deployment option', 'self-hosted vs cloud', or 'need lowest latency deployment'. Also use when choosing between deployment types for a new proje

Scan passed 0
qdrant-edge

Guides building on Qdrant Edge, the embedded in-process shard. Use when someone asks 'how to sync Edge with the server', 'keep a local shard in sync with Qdrant Cloud', 'BM25 or keyword search on Edge', 'hybrid search on Edge', 'embeddings on device', 'Edge snapshots', 'apply a partial snapshot', 'w

Scan passed 0
qdrant-horizontal-scaling

Diagnoses and guides Qdrant horizontal scaling decisions. Use when someone asks 'vertical or horizontal?', 'how many nodes?', 'how many shards?', 'how to add nodes', 'resharding', 'data doesn't fit', or 'need more capacity'. Also use when data growth outpaces current deployment.

Scan passed 0
qdrant-hybrid-cloud-setup

Setting up and running Qdrant Hybrid Cloud on your own Kubernetes cluster (managed, on-prem, or edge): prerequisites, storage/CSI and backups, installing the Qdrant Cloud agent and operator, creating/exposing/securing clusters, registry mirroring, and secret rotation. Use when someone wants to set u

Scan passed 0
qdrant-hybrid-search

Explains hybrid search in Qdrant. Use when someone asks 'how do I setup hybrid search?', 'how to combine keyword and semantic search?', 'sparse plus dense vectors?', 'missing keyword matches', 'how to combine results from multiple searches?' and 'combining multiple representations'. Also use for how

Scan passed 0
qdrant-hybrid-search-combining

Fusing scores from multiple searches into a single ranked result (RRF, DBSF, custom fusion). Use when someone asks 'RRF or DBSF?', 'how to combine sparse and dense', 'how to combine scores from multiple searches?', 'custom fusion', 'fusion is not producing good results', 'how do I tune RRF', 'what k

Scan passed 0
qdrant-hybrid-search-prefetches

Constructing prefetch queries for hybrid retrieval, including sparse/dense and multi-field setups, and choosing a sparse embedding model. Use when someone asks 'dense and sparse in one search?', 'how to combine multiple fields for retrieval?', 'payloads or sparse vectors for lexical?', 'which sparse

Scan passed 0

Related devops skillsscan passed

docker-patterns

Docker and Docker Compose patterns for local development, hardened CLI installer harnesses, container security, networking, volumes, and multi-service orchestration. Use when creating or reviewing Dockerfiles and Compose services, testing installers across Linux distributions, or planning accurate n

Scan passed 0
canary

Post-deploy canary monitoring. (gstack)

Scan passed 0
nextjs-on-cloudflare

Build, migrate, and deploy Next.js apps on Cloudflare Workers with vinext. Use when starting a Next.js project on Cloudflare, moving an existing app to Workers, choosing between vinext and OpenNext, or setting up vinext for Workers. For setup, migration, or deployment, install vinext's upstream skil

Scan passed 0
adapter-aws-lambda

Deploy tRPC on AWS Lambda with awsLambdaRequestHandler() from @trpc/server/adapters/aws-lambda for API Gateway v1 (REST, APIGatewayProxyEvent) and v2 (HTTP, APIGatewayProxyEventV2), and Lambda Function URLs. Enable response streaming with awsLambdaStreamingRequestHandler() wrapped in awslambda.strea

Scan passed 0
observability-and-instrumentation

Instruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the availabl

Scan passed 0
firebase-app-hosting-basics

Deploys and manages full-stack web applications (Next.js, Angular) with Server-Side Rendering (SSR) using Firebase App Hosting. Use when deploying Next.js/Angular apps, configuring apphosting.yaml or firebase.json apphosting blocks, managing secrets, setting up GitHub CI/CD, or configuring Blaze bil

Scan passed 0