> Markdown version of [Sizing and Scaling](https://vaadin.com/docs/next/building-apps/agentic-development/mcp/self-hosting/sizing). Section index: [llms.txt](https://vaadin.com/docs/next/building-apps/llms.txt)

# Sizing and Scaling

## <a id="what-one-instance-needs"></a>What One Instance Needs

Allow **1 vCPU and 2 GB of memory**. Measured on a container limited to exactly that, serving the full documentation set for every Vaadin version in the image:

| Measurement                                             | Value        |
| ------------------------------------------------------- | ------------ |
| Image size                                              | About 230 MB |
| Start-up time, until the health endpoint responds       | 5 seconds    |
| Memory in use, with all documentation loaded            | 291 MB       |
| Search response time, p50 / p95, two concurrent clients | 8 ms / 42 ms |
| Requests per second, two concurrent clients             | 178          |

These are reference figures, not guarantees. They were measured on an arm64 image on Apple Silicon rather than the amd64 image you deploy, and one vCPU on a laptop is not one vCPU on a server. Measure on your own hardware before you size against them.

## <a id="adding-capacity"></a>Adding Capacity

One instance comfortably serves a development team, so start with one.

To add capacity, run more replicas behind your usual load balancer. The server keeps no data between requests, so there’s nothing to configure: no shared storage, no session affinity, and no coordination between replicas. Each one needs the same license key, which covers any number of instances.
