I/O performance optimization on compute nodes

更新时间:
复制 MD 格式

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 specificationsTheoretical I/O performance improvement
2C16G33%
4C32G50%

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.

Relationship between storage capacity and I/O performance

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.