From e69ede3ecfa703f151ad3f4f00ffa1ee4a406e93 Mon Sep 17 00:00:00 2001 From: Eric Paulsen Date: Tue, 8 Mar 2022 10:54:59 -0600 Subject: [PATCH 1/4] feat: coderd resource recommendations --- setup/requirements.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/setup/requirements.md b/setup/requirements.md index 6c23d3adc..4928e1e4a 100644 --- a/setup/requirements.md +++ b/setup/requirements.md @@ -3,12 +3,34 @@ title: "Requirements" description: Learn about the prerequisite infrastructure requirements. --- +### Compute + 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 +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" +``` + +The default number of `coderd` replicas is 1. + +If you expect roughly 10 or more concurrent users, we recommend increasing these +figures to improve platform performance. + 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 From d5449c91f6503ec522923c4fba9bbf92b07995c7 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 8 Mar 2022 13:03:09 -0600 Subject: [PATCH 2/4] Update setup/requirements.md Co-authored-by: Jonathan Yu --- setup/requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/requirements.md b/setup/requirements.md index 4928e1e4a..b8d189117 100644 --- a/setup/requirements.md +++ b/setup/requirements.md @@ -26,7 +26,7 @@ resources: memory: "512Mi" ``` -The default number of `coderd` replicas is 1. +By default, Coder is a single-replica deployment. For production systems, consider using at least 3 replicas to provide failover and load balancing capabilities. If you expect roughly 10 or more concurrent users, we recommend increasing these figures to improve platform performance. From 9a5f4be9b0c1c9e2942399c214515378eef9c2df Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 8 Mar 2022 13:08:39 -0600 Subject: [PATCH 3/4] edit text --- setup/requirements.md | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/setup/requirements.md b/setup/requirements.md index b8d189117..42a670094 100644 --- a/setup/requirements.md +++ b/setup/requirements.md @@ -3,38 +3,41 @@ title: "Requirements" description: Learn about the prerequisite infrastructure requirements. --- -### Compute - Coder is deployed onto Kubernetes clusters, and we recommend the following resource allocation minimums to ensure quality performance. +## 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. +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: +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" + 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 3 replicas to provide failover and load balancing capabilities. +By default, Coder is a single-replica deployment. For production systems, +consider using at least 3 replicas to provide failover and load balancing +capabilities. If you expect roughly 10 or more concurrent users, we recommend increasing these -figures to improve platform performance. +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) @@ -43,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: From 18d7070bad14f5471fbb6d7197b7dcd2cac285b4 Mon Sep 17 00:00:00 2001 From: Katie Horne Date: Tue, 8 Mar 2022 13:09:25 -0600 Subject: [PATCH 4/4] edit more text --- setup/requirements.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup/requirements.md b/setup/requirements.md index 42a670094..08c91a5b5 100644 --- a/setup/requirements.md +++ b/setup/requirements.md @@ -27,12 +27,12 @@ resources: ``` By default, Coder is a single-replica deployment. For production systems, -consider using at least 3 replicas to provide failover and load balancing +consider using at least three replicas to provide failover and load balancing capabilities. -If you expect roughly 10 or more concurrent users, we recommend increasing these -figures to improve platform performance (we also recommend regular performance -testing in a staging environment). +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