From e00a1e0b6c57e8472a5f6a834c5204fe56df23ff Mon Sep 17 00:00:00 2001 From: "blink-so[bot]" <211532188+blink-so[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 16:52:32 +0000 Subject: [PATCH 1/3] docs: add cloud-specific database instance recommendations Enhances the Performance efficiency section with specific instance type recommendations for AWS, Azure, and GCP. Includes guidance on avoiding burstable instances for production workloads. Co-authored-by: dannykopping <373762+dannykopping@users.noreply.github.com> --- .../validated-architectures/index.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/admin/infrastructure/validated-architectures/index.md b/docs/admin/infrastructure/validated-architectures/index.md index fee01e777fbfe..e6cc6d4fb5979 100644 --- a/docs/admin/infrastructure/validated-architectures/index.md +++ b/docs/admin/infrastructure/validated-architectures/index.md @@ -313,6 +313,27 @@ considerations: active users. - Enable High Availability mode for database engine for large scale deployments. +#### Recommended instance types by cloud provider + +For production deployments, we recommend using dedicated compute instances rather than burstable instances (like AWS t-family) which provide inconsistent CPU performance. Below are recommended instance types for each major cloud provider: + +**AWS (RDS/Aurora PostgreSQL)** +- **Small deployments (<1000 users)**: `db.m6i.large` (2 vCPU, 8 GB RAM) or `db.r6i.large` (2 vCPU, 16 GB RAM) +- **Medium deployments (1000-2000 users)**: `db.m6i.xlarge` (4 vCPU, 16 GB RAM) or `db.r6i.xlarge` (4 vCPU, 32 GB RAM) +- **Large deployments (2000+ users)**: `db.m6i.2xlarge` (8 vCPU, 32 GB RAM) or `db.r6i.2xlarge` (8 vCPU, 64 GB RAM) + +**Azure (Azure Database for PostgreSQL)** +- **Small deployments (<1000 users)**: `Standard_D2s_v5` (2 vCPU, 8 GB RAM) or `Standard_E2s_v5` (2 vCPU, 16 GB RAM) +- **Medium deployments (1000-2000 users)**: `Standard_D4s_v5` (4 vCPU, 16 GB RAM) or `Standard_E4s_v5` (4 vCPU, 32 GB RAM) +- **Large deployments (2000+ users)**: `Standard_D8s_v5` (8 vCPU, 32 GB RAM) or `Standard_E8s_v5` (8 vCPU, 64 GB RAM) + +**Google Cloud (Cloud SQL for PostgreSQL)** +- **Small deployments (<1000 users)**: `db-standard-2` (2 vCPU, 7.5 GB RAM) or `db-highmem-2` (2 vCPU, 13 GB RAM) +- **Medium deployments (1000-2000 users)**: `db-standard-4` (4 vCPU, 15 GB RAM) or `db-highmem-4` (4 vCPU, 26 GB RAM) +- **Large deployments (2000+ users)**: `db-standard-8` (8 vCPU, 30 GB RAM) or `db-highmem-8` (8 vCPU, 52 GB RAM) + +> **Note**: Avoid burstable instance types (AWS t-family, Azure B-series) for production workloads as they provide inconsistent CPU performance. The baseline CPU for these instances is typically 20-40% of the maximum, with usage above baseline being throttled. + If you enable [database encryption](../../../admin/security/database-encryption.md) in Coder, consider allocating an additional CPU core to every `coderd` replica. From 06aabaf1a145e4af8bde5e51e2963c9358bec5b5 Mon Sep 17 00:00:00 2001 From: "blink-so[bot]" <211532188+blink-so[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 16:54:53 +0000 Subject: [PATCH 2/3] docs: fix markdown linting errors Converts bold text to proper headings and adds blank lines around lists to comply with markdownlint rules. Co-authored-by: dannykopping <373762+dannykopping@users.noreply.github.com> --- .../infrastructure/validated-architectures/index.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/admin/infrastructure/validated-architectures/index.md b/docs/admin/infrastructure/validated-architectures/index.md index e6cc6d4fb5979..9945255228b85 100644 --- a/docs/admin/infrastructure/validated-architectures/index.md +++ b/docs/admin/infrastructure/validated-architectures/index.md @@ -317,17 +317,20 @@ considerations: For production deployments, we recommend using dedicated compute instances rather than burstable instances (like AWS t-family) which provide inconsistent CPU performance. Below are recommended instance types for each major cloud provider: -**AWS (RDS/Aurora PostgreSQL)** +##### AWS (RDS/Aurora PostgreSQL) + - **Small deployments (<1000 users)**: `db.m6i.large` (2 vCPU, 8 GB RAM) or `db.r6i.large` (2 vCPU, 16 GB RAM) - **Medium deployments (1000-2000 users)**: `db.m6i.xlarge` (4 vCPU, 16 GB RAM) or `db.r6i.xlarge` (4 vCPU, 32 GB RAM) - **Large deployments (2000+ users)**: `db.m6i.2xlarge` (8 vCPU, 32 GB RAM) or `db.r6i.2xlarge` (8 vCPU, 64 GB RAM) -**Azure (Azure Database for PostgreSQL)** +##### Azure (Azure Database for PostgreSQL) + - **Small deployments (<1000 users)**: `Standard_D2s_v5` (2 vCPU, 8 GB RAM) or `Standard_E2s_v5` (2 vCPU, 16 GB RAM) - **Medium deployments (1000-2000 users)**: `Standard_D4s_v5` (4 vCPU, 16 GB RAM) or `Standard_E4s_v5` (4 vCPU, 32 GB RAM) - **Large deployments (2000+ users)**: `Standard_D8s_v5` (8 vCPU, 32 GB RAM) or `Standard_E8s_v5` (8 vCPU, 64 GB RAM) -**Google Cloud (Cloud SQL for PostgreSQL)** +##### Google Cloud (Cloud SQL for PostgreSQL) + - **Small deployments (<1000 users)**: `db-standard-2` (2 vCPU, 7.5 GB RAM) or `db-highmem-2` (2 vCPU, 13 GB RAM) - **Medium deployments (1000-2000 users)**: `db-standard-4` (4 vCPU, 15 GB RAM) or `db-highmem-4` (4 vCPU, 26 GB RAM) - **Large deployments (2000+ users)**: `db-standard-8` (8 vCPU, 30 GB RAM) or `db-highmem-8` (8 vCPU, 52 GB RAM) From da6ca12d1dfe6ca5042ec2b5f8720af7a5e5fc39 Mon Sep 17 00:00:00 2001 From: Danny Kopping Date: Tue, 15 Jul 2025 09:29:31 +0200 Subject: [PATCH 3/3] chore: add comparison links & storage recommendations Signed-off-by: Danny Kopping --- .../validated-architectures/index.md | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/admin/infrastructure/validated-architectures/index.md b/docs/admin/infrastructure/validated-architectures/index.md index 9945255228b85..6bd18f7f3c132 100644 --- a/docs/admin/infrastructure/validated-architectures/index.md +++ b/docs/admin/infrastructure/validated-architectures/index.md @@ -323,19 +323,33 @@ For production deployments, we recommend using dedicated compute instances rathe - **Medium deployments (1000-2000 users)**: `db.m6i.xlarge` (4 vCPU, 16 GB RAM) or `db.r6i.xlarge` (4 vCPU, 32 GB RAM) - **Large deployments (2000+ users)**: `db.m6i.2xlarge` (8 vCPU, 32 GB RAM) or `db.r6i.2xlarge` (8 vCPU, 64 GB RAM) +[Comparison](https://instances.vantage.sh/rds?memory_expr=%3E%3D0&vcpus_expr=%3E%3D0&memory_per_vcpu_expr=%3E%3D0&gpu_memory_expr=%3E%3D0&gpus_expr=%3E%3D0&maxips_expr=%3E%3D0&storage_expr=%3E%3D0&filter=db.r6i.large%7Cdb.m6i.large%7Cdb.m6i.xlarge%7Cdb.r6i.xlarge%7Cdb.r6i.2xlarge%7Cdb.m6i.2xlarge®ion=us-east-1&pricing_unit=instance&cost_duration=hourly&reserved_term=yrTerm1Standard.noUpfront&compare_on=true) + ##### Azure (Azure Database for PostgreSQL) - **Small deployments (<1000 users)**: `Standard_D2s_v5` (2 vCPU, 8 GB RAM) or `Standard_E2s_v5` (2 vCPU, 16 GB RAM) - **Medium deployments (1000-2000 users)**: `Standard_D4s_v5` (4 vCPU, 16 GB RAM) or `Standard_E4s_v5` (4 vCPU, 32 GB RAM) - **Large deployments (2000+ users)**: `Standard_D8s_v5` (8 vCPU, 32 GB RAM) or `Standard_E8s_v5` (8 vCPU, 64 GB RAM) +[Comparison](https://instances.vantage.sh/azure?memory_expr=%3E%3D0&vcpus_expr=%3E%3D0&memory_per_vcpu_expr=%3E%3D0&gpu_memory_expr=%3E%3D0&gpus_expr=%3E%3D0&maxips_expr=%3E%3D0&storage_expr=%3E%3D0&filter=d2s-v5%7Ce2s-v5%7Cd4s-v5%7Ce4s-v5%7Ce8s-v5%7Cd8s-v5®ion=us-east&pricing_unit=instance&cost_duration=hourly&reserved_term=yrTerm1Standard.allUpfront&compare_on=true) + ##### Google Cloud (Cloud SQL for PostgreSQL) -- **Small deployments (<1000 users)**: `db-standard-2` (2 vCPU, 7.5 GB RAM) or `db-highmem-2` (2 vCPU, 13 GB RAM) -- **Medium deployments (1000-2000 users)**: `db-standard-4` (4 vCPU, 15 GB RAM) or `db-highmem-4` (4 vCPU, 26 GB RAM) -- **Large deployments (2000+ users)**: `db-standard-8` (8 vCPU, 30 GB RAM) or `db-highmem-8` (8 vCPU, 52 GB RAM) +- **Small deployments (<1000 users)**: `db-perf-optimized-N-2` (2 vCPU, 16 GB RAM) +- **Medium deployments (1000-2000 users)**: `db-perf-optimized-N-4` (4 vCPU, 32 GB RAM) +- **Large deployments (2000+ users)**: `db-perf-optimized-N-8` (8 vCPU, 64 GB RAM) + +[Comparison](https://cloud.google.com/sql/docs/postgres/machine-series-overview#n2) + +##### Storage recommendations + +For optimal database performance, use the following storage types: + +- **AWS RDS/Aurora**: Use `gp3` (General Purpose SSD) volumes with at least 3,000 IOPS for production workloads. For high-performance requirements, consider `io1` or `io2` volumes with provisioned IOPS. + +- **Azure Database for PostgreSQL**: Use Premium SSD (P-series) with appropriate IOPS and throughput provisioning. Standard SSD can be used for development/test environments. -> **Note**: Avoid burstable instance types (AWS t-family, Azure B-series) for production workloads as they provide inconsistent CPU performance. The baseline CPU for these instances is typically 20-40% of the maximum, with usage above baseline being throttled. +- **Google Cloud SQL**: Use SSD persistent disks for production workloads. Standard (HDD) persistent disks are suitable only for development or low-performance requirements. If you enable [database encryption](../../../admin/security/database-encryption.md) in Coder,