Recommended CPU / RAM / Disk to run Onyx
vespaengine/vespa-generic-intel-x86_64
image in your docker-compose.yml
. This generic image is slower but ensures compatibility. For details, see Vespa CPU Support.
To clean up these unused images, run: docker system prune --all
.api_server
- 1 CPU, 2Gi Memory
background
- 2 CPU, 8Gi Memory
indexing_model_server
/ inference_model_server
- 2 CPU, 4Gi Memory
postgres
- 2 CPU, 2Gi Memory
vespa
- >=4 CPU, >= 8Gi Memory. This is the bare minimum for a production deployment, and we would generally recommend
higher than this. The resources required here also scales linearly with the number of documents indexed.
For reference, with 50GB of documents, we would generally recommend at least 10 CPU, 20Gi Memory +
tuning the VESPA_SEARCHER_THREADS
environment variable. See the How Resource Requirements Scale
section below for more details.
nginx
- 250m CPU, 128Mi Memory
All together, this comes out to a total available node size of at least 14 vCPU and 23GB of Memory.
index
component of Onyx (a Vespa vector database), which is responsible for storing the
raw text, embeddings, and handling search requests.
Based on our experience with other large deployments, Vespa needs ~3GB of RAM for each additional
1GB of documents indexed and ~0.5 additional CPU core for each 1 GB of documents indexed.
This is on top of the base requirements of 4 CPU cores and 16GB of RAM. Some notes:
index
component: