This topic describes the compute node specifications of PolarDB for PostgreSQL Enterprise Edition.
PolarDB for PostgreSQL Enterprise Edition supports the Dedicated and General-purpose specifications.
Dedicated: Each cluster does not share allocated compute resources such as CPUs with other clusters on the same server, which improves the reliability and stability of the cluster.
General-purpose: Idle compute resources such as CPUs are shared among clusters on the same server, which is more cost-effective.
Table 1. Specifications of compute nodes
Specification type | Node type | CPU and memory | Maximum storage capacity | Maximum number of connections1 | Internal bandwidth | PSL4 maximum IOPS | PSL5 maximum IOPS | I/O bandwidth |
Dedicated | polar.pg.x4.medium | 2 cores, 8 GB memory | 100 TB | 800 | 1 Gbps | 8,000 | 16,000 | 1 Gbps |
polar.pg.x8.medium | 2 cores, 16 GB memory | 100 TB | 1,600 | 5 Gbps | 8,000 | 16,000 | 1 Gbps | |
polar.pg.x4.large | 4 cores, 16 GB memory | 100 TB | 1,600 | 10 Gbps | 32,000 | 64,000 | 4 Gbps | |
polar.pg.x8.large | 4 cores, 32 GB memory | 100 TB | 3,200 | 10 Gbps | 32,000 | 64,000 | 4 Gbps | |
polar.pg.x4.xlarge | 8 cores, 32 GB memory | 100 TB | 3,200 | 10 Gbps | 64,000 | 128,000 | 8 Gbps | |
polar.pg.x8.xlarge | 8 cores, 64 GB memory | 100 TB | 3,200 | 10 Gbps | 80,000 | 160,000 | 10 Gbps | |
polar.pg.x4.2xlarge | 16 cores, 64 GB memory | 100 TB | 3,200 | 10 Gbps | 128,000 | 256,000 | 16 Gbps | |
polar.pg.x8.2xlarge | 16 cores, 128 GB memory | 100 TB | 12,800 | 10 Gbps | 128,000 | 256,000 | 16 Gbps | |
polar.pg.x4.4xlarge | 32 cores, 128 GB memory | 100 TB | 12,800 | 10 Gbps | 128,000 | 256,000 | 16 Gbps | |
polar.pg.x8.4xlarge | 32 cores, 256 GB memory | 300 TB | 25,600 | 10 Gbps | 192,000 | 384,000 | 24 Gbps | |
polar.pg.x4.6xlarge | 48 cores, 192 GB memory | 100 TB | 12,800 | 10 Gbps | 128,000 | 256,000 | 16 Gbps | |
polar.pg.x8.6xlarge | 48 cores, 384 GB memory | 300 TB | 25,600 | 10 Gbps | 192,000 | 384,000 | 24 Gbps | |
polar.pg.x4.8xlarge | 64 cores, 256 GB memory | 300 TB | 25,600 | 10 Gbps | 192,000 | 384,000 | 24 Gbps | |
polar.pg.x8.8xlarge | 64 cores, 512 GB memory | 500 TB | 36,000 | 10 Gbps | 204,800 | 409,600 | 24 Gbps | |
polar.pg.x8.12xlarge | 88 cores, 710 GB memory | 500 TB | 36,000 | 25 Gbps | 256,000 | 512,000 | 32 Gbps | |
polar.pg.x8.15xlarge | 120 cores, 920 GB memory | 500 TB | 36,000 | 25 Gbps | 256,000 | 512,000 | 32 Gbps | |
General-purpose | polar.pg.g2.medium | 2 cores, 4 GB memory | 5 TB | 500 | 1 Gbps | 5000 | 10000 | 1 Gbps |
polar.pg.g4.medium | 2 cores, 8 GB memory | 5 TB | 800 | 1 Gbps | 8000 | 16000 | 1 Gbps | |
polar.pg.g2.large | 4 cores, 8 GB memory | 10 TB | 1000 | 10 Gbps | 16000 | 32000 | 10 Gbps | |
polar.pg.g4.large | 4 cores, 16 GB memory | 10 TB | 1600 | 10 Gbps | 32000 | 64000 | 4 Gbps | |
polar.pg.g2.xlarge | 8 cores, 16 GB memory | 10 TB | 2000 | 10 Gbps | 48000 | 96000 | 4 Gbps | |
polar.pg.g4.xlarge | 8 cores, 32 GB memory | 10 TB | 3200 | 10 Gbps | 64000 | 128000 | 8 Gbps | |
polar.pg.g8.xlarge | 8 cores, 64 GB memory | 30 TB | 3200 | 10 Gbps | 80000 | 160000 | 10 Gbps | |
polar.pg.g2.2xlarge | 16 cores, 32 GB memory | 30 TB | 3200 | 10 Gbps | 96000 | 192000 | 10 Gbps |
Maximum number of connections 1: the limit on the number of connections. You can use the max_connections parameter to specify the maximum number of connections. The actual number of connections supported by a compute node may vary based on the business requirements. For more information, see Maximum number of connections.
The maximum IOPS and I/O bandwidth of an Enterprise Edition cluster increase proportionally with the number of nodes. For example, in an Enterprise Edition cluster that uses dedicated specifications, 8-core 32 GB compute nodes, and PSL5 storage, the maximum storage performance of the cluster is 4 × 96,000 IOPS and 4 × 8 Gbps I/O bandwidth if the cluster contains one read-write node and three read-only nodes.
The IOPS provided by PSL4 is determined by the maximum IOPS of the computing specification and the storage IOPS. The following formula is used to calculate the IOPS of a compute node:
min{maximum IOPS of the computing specification, storage IOPS}
. The following formula is used to calculate the storage IOPS:min{1,800+50×storage capacity, 50,000}
. Unit: GB.For example, in your cluster the compute node specification is polar.pg.x8.xlarge and the maximum IOPS of the computing specification is 80,000. The storage capacity is 100 GB, which means the storage IOPS is min{1,800+50*100, 50,000}=6,800. As a result, the IOPS of the compute node is min{80,000, 6,800}=6,800.
The storage specification of each node of an Enterprise Edition cluste is independent from that of the other nodes. For example, for an Enterprise Edition cluster that contains one read-write node and three read-only nodes, if the storage specifications are 128,000 IOPS and 8 Gbps I/O bandwidth, the storage specifications of each node are 128,000 IOPS and 8 Gbps I/O bandwidth.
In minor version 1.1.7 that was released in December 2020, the maximum numbers of connections supported by some compute node specifications were changed. The preceding table contains the new specifications. The changes apply to all clusters that are created after minor version 1.1.7 was released. For existing clusters, you can use one of the following methods to change the maximum number of connections:
Change the specifications of clusters.
Go to Quota Center and click Apply in the Actions column of the PolarDB PG adjusts the maximum number of connections quota name.
Maximum number of connections
If the number of concurrent connections to your PolarDB for PostgreSQL cluster exceeds the maximum number of connections, new connections cannot be established, or existing connections time out.
The memory consumption of each connection varies based on the business system. The actual number of connections supported by your cluster may differ from the specified maximum number of connections.
To query the specified maximum number of connections, execute the following statement:
SHOW max_connections;
To query the current number of connections, execute the following statement:
SELECT count(1) FROM pg_stat_activity;
To ensure that the number of connections to the cluster does not exceed the recommended value, we recommend that you monitor your business conditions and cluster status. You can calculate the recommended value by using the following formula:
LEAST({DBInstanceClassMemory/11MB}, 5000)
.If your application requires a higher number of connections, we recommend that you use a cluster with larger memory.