I/O performance optimization on compute nodes
On May 19, 2021, AnalyticDB for PostgreSQL optimized the I/O performance of compute nodes for new instances, increasing query speed by approximately 30%.
Release date
May 19, 2021.
Precautions
- This optimization applies only to AnalyticDB for PostgreSQL instances created on or after May 19, 2021.
- The instance must use Elastic Storage Mode.
Relationship between compute node specifications and I/O performance improvement
| Compute node specifications | Theoretical I/O performance improvement |
| 2C16G | 33% |
| 4C32G | 50% |
I/O performance comparison between instances before and after this optimization
This comparison uses AnalyticDB for PostgreSQL instances with the following specifications:
- Compute node specifications: 2C16GB
- Number of compute nodes: 4
- Storage capacity of compute nodes: 400 GB
The total computing and storage resources and their costs are the same between the two instances. The following example compares the query results of a SELECT COUNT(*) statement executed on an 80 GB table from each instance:
- Query result from an instance created before May 19, 2021:
postgres=# \timing on Timing is on. postgres=# select count(*) from lineitem; count ----------- 600037902 (1 row) Time: 268565.456 ms - Query result from an instance created on or after May 19, 2021:
postgres=# \timing on Timing is on. postgres=# select count(*) from lineitem ; count ----------- 600037902 (1 row) Time: 202173.289 ms postgres=#
The results show that after the I/O performance improvement, I/O-bound queries, like COUNT(*), run approximately 30% faster.
Relationship between storage capacity and I/O performance
The following chart shows test results for a 4C32G instance.
The preceding figure shows that the I/O throughout is related to the storage capacity of compute nodes. The I/O throughput can reach the theoretical I/O bandwidth only when the storage capacity is greater than its specified threshold. If the storage capacity is less than this threshold, the I/O throughput changes linearly with the disk size.
To achieve the maximum I/O performance, we recommend that you set the storage capacity of compute nodes to 150 GB or more for 4C32GB instances.
The preceding relationship also applies to 2C16GB instances. The I/O bandwidth of 2C16GB instances is lower than that of 4C32GB instances. You can set the storage capacity of compute nodes to 50 GB or more to achieve the maximum I/O performance of 2C16GB instances.