Javier MartinezSoftware EngineerZylon
Zylon, the company behind PrivateGPT, whose settings default the vector store to Qdrant, running Qdrant on Kubernetes with the official Helm chart and image.
GitHub, qdrant/qdrant, published Read the issue (opens GitHub, qdrant/qdrant in a new tab)
Observation
Zylon's production Qdrant pods failed under ingestion as memory grew until Kubernetes evicted them. After moving payload indexes to disk they held at 512Mi and still crashed at 256Mi.
- Takeaway
- Set every part of the collection you want off RAM to on-disk, payload indexes included, and load-test at the memory limit you plan to run.
- What happened
- In October 2024 Zylon's engineer reported that memory grew with each ingestion batch until the pod reached its limit, leading to frequent evictions and restarts in what the engineer called their production configuration, which already set vectors and HNSW on disk. Qdrant replied that memory use follows the configuration, and that on-disk data is released under memory pressure. After putting payload indexes on disk as well, the pods ran fine at a 512Mi limit with 40 concurrent users and still crashed at 256Mi.
- Public engineering write-up (issue by a Zylon engineer)
- Measured results reported
- Opened Oct 16, 2024
Deployment details
Zylon, the company behind PrivateGPT, whose settings default the vector store to Qdrant, running Qdrant on Kubernetes with the official Helm chart and image.
- Public engineering write-up (issue by a Zylon engineer)
- Measured results reported
- Opened Oct 16, 2024
- Team
- Zylon
- Workload
- Large-scale data ingestion into Qdrant with llama-index
- Product version
- Tested with 0.10.0 and 1.12.1 (official Helm chart and Docker image) on Kubernetes 1.30.0
- Measurement
- Held at a 512Mi memory limit with 40 concurrent users and crashed at 256Mi


