Azure Cosmos DB for PostgreSQL compute and storage
Article
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.
† 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.