Replies: 2 comments 23 replies
-
A rough calculation shows that 65 million vectors with a dimensionality of 1536 requires 580GB of RAM. That is without any form of quantization and a replication factor of 1. (calculator) A replication factor of 2 means you'd need double that, being 1.16TB of RAM. Based on your above configuration I have two comments:
Regarding the formula, it's explained here: https://qdrant.tech/documentation/cloud/capacity-sizing/#basic-configuration |
Beta Was this translation helpful? Give feedback.
-
@timvisee OK, I am officially very confused about payload storage. I got rid of the high cardinality UUID payload, opting to store payload ids as UUIDs instead. With With But our payloads should be very small!
We are storing an integer and a boolean. For 64 bit integers, we should only need about 500MB of memory for all 66M records, and even less for the boolean. Finding it very hard to capacity plan, we keep running experiments and being surprised |
Beta Was this translation helpful? Give feedback.
-
We are running on Kubernetes. Each node has 4 cpu and 12.97GB of allocatable memory.
We are running an 8 replica cluster.
We have tried many different memory requests and limits, and always experience OOMKills at some point during ingestion.
Looking at charts, memory ramps until our requested amount, and then we experience OOMKills.
Here are messages from
dmesg
Our full collection is 65 million 1536 dim vectors.
This is very frustrating, My napkin math says we have plenty of RAM for binary quantization - i feel in my gut this has to do with memmap.
When the cluster goes down, it has problems booting from disk again, as it seems to be using tons of virtual memory and getting OOMKIlled.
At a loss for what to do.
Here is our collection config:
Here is our
StatefulSet
There is also an injected
istio-proxy
pod with memory requests and limits of128Mi
and1Gi
Beta Was this translation helpful? Give feedback.
All reactions