diff --git a/setup/requirements.md b/setup/requirements.md index 6c23d3adc..08c91a5b5 100644 --- a/setup/requirements.md +++ b/setup/requirements.md @@ -6,13 +6,38 @@ description: Learn about the prerequisite infrastructure requirements. Coder is deployed onto Kubernetes clusters, and we recommend the following resource allocation minimums to ensure quality performance. -For **basic control services**, allocate at least 2 CPU cores, 4 GB of RAM, and -20 GB of storage. +## Compute + +For the Coder control plane (which consists of the `coderd` pod and any +additional replicas) allocate at least 2 CPU cores, 4 GB of RAM, and 20 GB of +storage. + +In addition to sizing the control plane node(s), you can configure the `coderd` +pod's resource requests/limits and number of replicas in the Helm chart. The +current defaults for both CPU and memory are the following: + +```yaml +resources: + requests: + cpu: "250m" + memory: "512Mi" + limits: + cpu: "250m" + memory: "512Mi" +``` + +By default, Coder is a single-replica deployment. For production systems, +consider using at least three replicas to provide failover and load balancing +capabilities. + +If you expect roughly ten or more concurrent users, we recommend increasing +these figures to improve platform performance (we also recommend regular +performance testing in a staging environment). For **each** active developer using Coder, allocate additional resources. The -specific amount required per developer varies, though we recommend -starting with 4 CPUs and 16 GB of RAM, then iterating as needed. Developers are -free to request the resource allocation that fits their usage: +specific amount required per developer varies, though we recommend starting with +4 CPUs and 16 GB of RAM, then iterating as needed. Developers are free to +request the resource allocation that fits their usage: ![Workspace resource request](../assets/setup/resource-request.png) @@ -21,7 +46,7 @@ to determine whether you should change your resource allocation. Accepting a utilization of RAM of around 50% and CPU of around 70% is a good way to balance performance with cost. -### Throughput +## Throughput We recommend the following throughput: