Azure Cosmos DB for PostgreSQL compute and storage

APPLIES TO: Azure Cosmos DB for PostgreSQL (powered by the Citus database extension to PostgreSQL)

Compute resources are provided as vCores, which represent the logical CPU of the underlying hardware. The storage size for provisioning refers to the capacity available to the coordinator and worker nodes in your cluster. The storage includes database files, temporary files, transaction logs, and the Postgres server logs.

Multi-node cluster

You can select the compute and storage settings independently for worker nodes and the coordinator node in a multi-node cluster.

Resource Worker node Coordinator node
Compute, vCores 4, 8, 16, 32, 64, 96, 104 4, 8, 16, 32, 64, 96
Memory per vCore, GiB 8 4
Storage size, TiB 0.5, 1, 2, 4, 8, 16, 32 0.128, 0.25, 0.5, 1, 2, 4, 8, 16, 32
Storage type General purpose (SSD) General purpose (SSD)

The total amount of RAM in a single node is based on the selected number of vCores.

vCores One worker node, GiB RAM Coordinator node, GiB RAM
4 32 16
8 64 32
16 128 64
32 256 128
64 512 256
96 672 384
104 672 n/a

The total amount of storage you provision also defines the I/O capacity available to each worker and coordinator node.

Storage size, TiB Maximum IOPS
0.5 2,300
1 5,000
2 7,500
4 7,500
8 16,000
16 18,000
32 20,000

For the entire cluster, the aggregated IOPS work out to the following values:

Worker nodes 0.5 TiB, total IOPS 1 TiB, total IOPS 2 or 4 TiB, total IOPS 8 TiB, total IOPS 16 TiB, total IOPS 32 TiB, total IOPS
2 4,600 10,000 15,000 32,000 36,000 40,000
3 6,900 15,000 22,500 48,000 54,000 60,000
4 9,200 20,000 30,000 64,000 72,000 80,000
5 11,500 25,000 37,500 80,000 90,000 100,000
6 13,800 30,000 45,000 96,000 108,000 120,000
7 16,100 35,000 52,500 112,000 126,000 140,000
8 18,400 40,000 60,000 128,000 144,000 160,000
9 20,700 45,000 67,500 144,000 162,000 180,000
10 23,000 50,000 75,000 160,000 180,000 200,000
11 25,300 55,000 82,500 176,000 198,000 220,000
12 27,600 60,000 90,000 192,000 216,000 240,000
13 29,900 65,000 97,500 208,000 234,000 260,000
14 32,200 70,000 105,000 224,000 252,000 280,000
15 34,500 75,000 112,500 240,000 270,000 300,000
16 36,800 80,000 120,000 256,000 288,000 320,000
17 39,100 85,000 127,500 272,000 306,000 340,000
18 41,400 90,000 135,000 288,000 324,000 360,000
19 43,700 95,000 142,500 304,000 342,000 380,000
20 46,000 100,000 150,000 320,000 360,000 400,000

Single node cluster

Single-node cluster resource options differ between burstable compute and regular compute.

Burstable compute

Resource Resource value
Burstable compute, vCores 1, 2
Burstable compute memory per vCore, GiB 2
Storage size, GiB (IOPS, up to) 32 (120), 64 (240), 128 (500)
Storage type General purpose (SSD)

Regular compute

Resource Resource value
Compute, vCores 2, 4, 8, 16, 32, 64
Compute memory per vCore, GiB 4
Storage size, GiB (IOPS, up to) 128 (500), 256 (1,100), 512 (2,300), 1024† (5,000), 2048† (7,500)
Storage type General purpose (SSD)

† 1024 GiB and 2048 GiB are supported with 8 vCores or greater.

Maximum IOPS for your compute / storage configuration

Each compute configuration has an IOPS limit that depends on the number of vCores in a node. Make sure you select compute configuration for the coordinator and worker nodes in your cluster to fully utilize IOPS in the selected storage.

Worker nodes, per node

Compute Storage size to maximize IOPS usage, up to IOPS with the max recommended storage size, up to
4 vCores 1 TiB 5,000
8 vCores 4 TiB 7,500
16 vCores 32 TiB 20,000
32 vCores 32 TiB 20,000
64 vCores 32 TiB 20,000
96 vCores 32 TiB 20,000
104 vCores 32 TiB 20,000

Coordinator and single node with regular compute

Compute Storage size to maximize IOPS usage, up to IOPS with the max recommended storage size, up to
2 vCores 0.5 TiB 2,300
4 vCores 1 TiB 5,000
8 vCores 4 TiB 7,500
16 vCores 32 TiB 20,000
32 vCores 32 TiB 20,000
64 vCores 32 TiB 20,000
96 vCores 32 TiB 20,000

To put it another way, if you need 8 TiB of storage per node or more, make sure you select 16 vCores or more for the node's compute configuration. That would allow you to maximize IOPS usage provided by the selected storage.

Next steps