Generally, a Kong Mesh control plane with 4vCPU and 2GB of memory will be able to accommodate more than 1000 data planes.
A good rule of thumb is to assign about 1MB of memory per data plane. When it comes to CPUs, Kong Mesh handles parallelism extremely well since its architecture uses a lot of shared-nothing goroutines, so more CPUs usually enable quicker propagation of changes.
However, we highly recommend that you to run your own load tests prior to going to production. There are many ways to run workloads and deploy applications, and while we test some of them, you are in the best position to build a realistic benchmark of what you do.
To see if you may need to increase your control plane’s spec, there are two main metrics to pay attention to:
- Propagation time (
xds_delivery): This is the time it takes between a change in the mesh and the data plane receiving its updated configuration. Think about it as the reactivity of your mesh. - Configuration generation time (
xds_generation): This is the time it takes for the configuration to be generated.
For any large mesh using a transparent proxy, we recommend using reachable services.
You can also find tuning configuration in the performance fine-tuning documentation.