Skip to content
Skillpedia
Databases40k · #5304

qdrant-memory-usage-optimization

Identifies and reduces excessive memory usage by Qdrant.

What it does

This tool helps understand and reduce Qdrant's memory usage. It identifies what's consuming the most memory and suggests ways to optimize, like compressing data or moving less-used parts to disk.

When to use it

  • ✓When Qdrant is using too much RAM.
  • ✓If Qdrant crashes due to out of memory.
  • ✓When the memory usage doesn't match expectations.

Example of what to ask your AI

“How can I reduce my Qdrant's memory usage?”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/github/awesome-copilot/blob/main/skills/qdrant-performance-optimization/memory-usage-optimization/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/github/awesome-copilot/blob/main/skills/qdrant-performance-optimization/memory-usage-optimization/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool analyzes how Qdrant uses memory (RAM and system cache) and checks which components (like indexes or vectors) are consuming the most. Based on this, it suggests techniques like using smaller data formats or moving rarely accessed data to disk.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add github/awesome-copilot --skill qdrant-memory-usage-optimization

Or download just the file:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/qdrant-performance-optimization/memory-usage-optimization/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Understanding memory usage

Qdrant operates with two types of memory:

  • Resident memory (aka RSSAnon) - memory used for internal data structures like the ID tracker, plus components that must stay in RAM, such as quantized vectors when always_ram=true and payload indexes.

  • OS page cache - memory used for caching disk reads, which can be released when needed. Original vectors are normally stored in page cache, so the service won't crash if RAM is full, but performance may degrade.

It is normal for the OS page cache to occupy all available RAM, but if resident memory is above 80% of total RAM, it is a sign of a problem.

Memory usage monitoring

  • Qdrant exposes memory usage through the /metrics endpoint. See Monitoring docs.
<!-- ToDo: Talk about memory usage of each components once API is available -->

How much memory is needed for Qdrant?

Optimal memory usage depends on the use case.

For a detailed breakdown of memory usage at large scale, see Large scale memory usage example.

Payload indexes and HNSW graph also require memory, along with vectors themselves, so it's important to consider them in calculations.

Additionally, Qdrant requires some extra memory for optimizations. During optimization, optimized segments are fully loaded into RAM, so it is important to leave enough headroom. The larger max_segment_size is, the more headroom is needed.

When to put HNSW index on disk

Putting frequently used components (such as HNSW index) on disk might cause significant performance degradation. There are some scenarios, however, when it can be a good option:

  • Deployments with low latency disks - local NVMe or similar.
  • Multi-tenant deployments, where only a subset of tenants is frequently accessed, so that only a fraction of data & index is loaded in RAM at a time.
  • For deployments with inline storage enabled.

How to minimize memory footprint

The main challenge is to put on disk those parts of data, which are rarely accessed. Here are the main techniques to achieve that:

  • Use quantization to store only compressed vectors in RAM Quantization docs

  • Use float16 or int8 datatypes to reduce memory usage of vectors by 2x or 4x respectively, with some tradeoff in precision. Read more about vector datatypes in documentation

  • Leverage Matryoshka Representation Learning (MRL) to store only small vectors in RAM while keeping large vectors on disk. Examples of how to use MRL with Qdrant Cloud inference: MRL docs

  • For multi-tenant deployments with small tenants, vectors might be stored on disk because the same tenant's data is stored together Multitenancy docs

  • For deployments with fast local storage and relatively low requirements for search throughput, it may be possible to store all components of vector store on disk. Read more about the performance implications of on-disk storage in the article

  • For low RAM environments, consider async_scorer config, which enables support of io_uring for parallel disk access, which can significantly improve performance of on-disk storage. Read more about async_scorer in the article (only available on Linux with kernel 5.11+)

  • Consider storing Sparse Vectors and text payload on disk, as they are usually more disk-friendly than dense vectors.

  • Configure payload indexes to be stored on disk docs

  • Configure sparse vectors to be stored on disk docs

FAQ

What's the difference between Resident memory (RSSAnon) and OS page cache?

Resident memory is RAM used for Qdrant's essential data. OS page cache is RAM used to speed up disk reads and can be released if needed.

When should I put the HNSW index on disk?

It's good for fast disks (NVMe), when you have many 'tenants' (users/clients) and access few at a time, or if 'inline storage' is enabled.

What are the main ways to decrease memory usage?

Use quantization to compress vectors, choose smaller data types (float16, int8), use Matryoshka to keep large vectors on disk, and configure indexes and sparse vectors to reside on disk.

Details

Original description by the author

Diagnoses and reduces Qdrant memory usage. Use when someone reports 'memory too high', 'RAM keeps growing', 'node crashed', 'out of memory', 'memory leak', or asks 'why is memory usage so high?', 'how to reduce RAM?'. Also use when memory doesn't match calculations, quantization didn't help, or nodes crash during recovery.

repo: github/awesome-copilot

Popularity

GitHub stars
40k
Ranking position
#5304
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills