> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sizing

> CPU, memory, and pod-count requirements per node pool for a Vantage 3.0 self-hosted installation.

This page describes the minimum cluster capacity required to install Vantage 3.0 self-hosted. Because there are countless VM sizes and SKUs that can serve as Kubernetes nodes, requirements are expressed as **total resource requests** per node pool rather than as a node count.

Resource requests are a floor, not a measure of load. Treat the numbers on this page as the bare minimum needed to get Vantage installed, then size for your document volume, concurrency, availability, and failure tolerance on top of them.

<Note>
  The figures below do not include service mesh sidecars (for example, Istio proxies).
</Note>

## Assumptions

The tables assume the recommended node pool layout described in [Kubernetes node requirements](/vantage/self-hosted/v3.0/prerequisites#kubernetes-node-requirements): TechCore workers and training workers each run in their own node pool, separate from the rest of the Vantage workloads.

The base figures exclude optional components:

* TechCore 4 only. Earlier TechCore versions are listed under [Optional components](#optional-components).
* No custom blob storage service. Object storage is provided by Azure Blob Storage or S3-compatible storage, not the `spec.storage.custom` backend.
* No optional workers or services.

## How to read the tables

* **Pods**, **CPU**, and **Memory** are the sum of resource requests across all workloads scheduled in that node pool.
* **Minimum node size** is set by the largest single pod scheduled in that pool. A node smaller than this cannot run that pod regardless of how many nodes you add.
* For the default pool, figures marked with an asterisk (\*) include installation processes such as database migration jobs, in addition to long-lived deployments and stateful sets. Migration jobs are short-lived, but several applications sync at once during installation and upgrades, so their requests must be counted alongside the long-lived workloads.

## Minimal install

A minimal install deploys Vantage with the lowest pod replica counts and resource requests. Use it to prove out networking and identity configuration, or as a test environment.

| Node pool | Pods | CPU  | Memory     | Minimum node size |
| --------- | ---- | ---- | ---------- | ----------------- |
| default   | 76\* | 21\* | 30.1 GiB\* | 1 vCPU / 2 GiB    |
| techcore  | 22   | 17   | 77.9 GiB   | 1 vCPU / 8 GiB    |
| training  | 3    | 6    | 21.4 GiB   | 4 vCPU / 8 GiB    |

## Production install

A production install deploys Vantage with production pod replica counts and resource requests, with [KEDA autoscaling](/vantage/self-hosted/v3.0/performance/autoscaling) enabled.

| Node pool | Pods  | CPU  | Memory      | Minimum node size |
| --------- | ----- | ---- | ----------- | ----------------- |
| default   | 121\* | 83\* | 175.5 GiB\* | 4 vCPU / 8 GiB    |
| techcore  | 71    | 59   | 272.7 GiB   | 1 vCPU / 8 GiB    |
| training  | 3     | 6    | 21.4 GiB    | 4 vCPU / 8 GiB    |

## Optional components

Enable these workloads only when your requirements call for them, and add their requests to the base figures above.

Where two values are shown as `n / m`, `n` applies to a minimal install and `m` to a production install. A single value applies to both.

| Component                                                           | Node pool | Pods    | CPU         | Memory           | Largest single pod             |
| ------------------------------------------------------------------- | --------- | ------- | ----------- | ---------------- | ------------------------------ |
| TechCore 3                                                          | techcore  | 16 / 39 | 14.4 / 35.1 | 56.3 / 142.2 GiB | 0.9 vCPU, 7.2 GiB              |
| TechCore 3                                                          | training  | 3       | 5.4         | 21.4 GiB         | 3.6 vCPU, 7.2 GiB              |
| TechCore 2                                                          | techcore  | 18 / 51 | 16.2 / 45.9 | 72.5 / 208.6 GiB | 0.9 vCPU, 7.2 GiB              |
| TechCore 2                                                          | training  | 3       | 5.4         | 17.8 GiB         | 3.6 vCPU, 7.2 GiB              |
| Custom storage (`spec.storage.custom`)                              | default   | 1 / 3   | 0.5 / 1.5   | 0.3 / 0.9 GiB    | 0.5 vCPU, 0.3 GiB              |
| Reporting (`spec.reportingEnabled`)                                 | default   | 1 / 2   | 0.5 / 1.3   | 0.1 / 2.0 GiB    | 0.5 / 0.65 vCPU, 0.1 / 1.0 GiB |
| Neural network training workers (`spec.techcore.nnTrainingWorkers`) | training  | 2       | 26          | 46.4 GiB         | 13 vCPU, 32 GiB                |

## What's next

<CardGroup cols={2}>
  <Card title="Prerequisites" icon="list-check" href="/vantage/self-hosted/v3.0/prerequisites#kubernetes-node-requirements">
    Label and taint the TechCore and training node pools.
  </Card>

  <Card title="Autoscaling with KEDA" icon="arrows-up-down" href="/vantage/self-hosted/v3.0/performance/autoscaling">
    Plan cluster capacity for autoscaled workloads.
  </Card>

  <Card title="Helm chart reference" icon="dharmachakra" href="/vantage/self-hosted/v3.0/helm-chart">
    Chart values for the `vantage-selfhosted` release.
  </Card>

  <Card title="API reference" icon="code" href="/vantage/self-hosted/v3.0/api-reference">
    Field-level contract for the Vantage custom resource.
  </Card>
</CardGroup>
