Storage I/O performance, also known as storage read/write performance, is the performance
that can be delivered when cloud disks are attached to instances of different Elastic
Compute Service (ECS) instance types. Metrics of storage I/O performance include IOPS
and throughput.
I/O size
I/O (input/output or read/write) is random or sequential data requests initiated by
an application. I/O request size is also called I/O size, which is measured in KiB.
Example: 4 KiB.
When you design the underlying storage architecture or select an instance type, you
must consider metrics such as IOPS, I/O size, and throughput. You can use the following
formula to calculate throughput based on the I/O size and the number of IOPS: IOPS
× I/O size = Throughput. You can choose an optimal combination of Elastic Block Storage
devices and instance types based on the I/O request characteristics of applications.
- For the applications such as offline analysis and data warehouses that require a large
I/O size, we recommend that you select the big data instance families that deliver
high throughput.
- For the applications such as online transaction processing (OLTP) databases and enterprise-level
applications like SAP that require latency-sensitive, small, random I/O operations,
we recommend that you select enhanced SSDs (ESSDs) and standard SSDs that deliver
high IOPS.
For more information about IOPS and throughput, see
EBS performance.
Storage I/O performance of instances
New-generation enterprise-level instance families provide isolation of storage I/O
performance. Dedicated storage bandwidths are assigned for communication between ECS
instances and cloud disks to prevent storage I/O contention among instances. New-generation
enterprise-level instance families ensure the consistent storage I/O performance of
applications even during peak hours.
If your business application is one of the following I/O-sensitive applications that
require consistent storage I/O performance, we recommend that you select a new-generation
instance family that provides isolation of storage I/O performance:
- Large and medium-sized databases, such as Oracle, MySQL, SQL Server, PostgreSQL, Cassandra,
and MongoDB databases
- Enterprise-level applications such as Enterprise Resource Planning (ERP) and Customer
Relationship Management (CRM)
Relationship between instance types and storage I/O performance
The storage I/O performance of ECS instances varies based on their instance families,
instance types, and attached cloud disks. The storage I/O performance of an instance
is subject to the instance specifications. The higher specifications an instance type
has, the higher storage I/O performance (IOPS and throughput) it can provide. When
you understand the relationship between instance storage performance and cloud disk
storage performance, you can choose appropriate instance types and Elastic Block Storage
devices based on their performance specifications and prevent performance bottlenecks
caused by improper configurations.
IOPS of instances
After you create an instance and attach cloud disks to it, the final storage I/O performance
of the instance is determined as described in the following section:
- Scenario 1: If the total maximum storage performance of the attached cloud disks exceeds
the maximum storage I/O performance that the instance type can deliver, the final
storage I/O performance of the instance is limited to the maximum storage I/O performance
of the instance type.
- Scenario 2: If the total maximum storage performance of the attached cloud disks does
not exceed the maximum storage I/O performance that the instance type can deliver,
the final storage I/O performance of the instance is limited to the total maximum
storage I/O performance of the cloud disks.

For example, the ecs.g6.8xlarge instance type can deliver up to 60,000 IOPS. If a
1,600 GiB ESSD at performance level 2 (PL2 ESSD) is attached to an instance of this
instance type and the IOPS of the PL2 ESSD is 81,800, the storage IOPS of the instance
is capped at 60,000. For information about the performance levels of ESSDs, see ESSDs.
Burst IOPS and burst storage bandwidths of instances
Instances of some small 7th- or later-generation instance types can burst beyond their
storage IOPS and bandwidth baselines. After you create such an instance and attach
cloud disks to it, the final burst IOPS and burst storage bandwidth of the instance
are determined as described in the following section:
- Burst IOPS of an instance
- Metrics: represent the limits that an instance type have on the storage I/O performance
of cloud disks.
- Baseline IOPS: the maximum IOPS that an instance type can consistently support for cloud disks
in compliance with a service level agreement (SLA) commitment.
- Burst IOPS: the IOPS that an instance type can burst to. Burst IOPS is time-limited and dependent
on the amount of I/O resources that an instance provides. No SLA commitments are made
for burst IOPS. If an instance provides sufficient I/O resources and cloud disks attached
to the instance sustain the highest burst performance supported by the instance type,
the default maximum burst duration supported by the instance type varies based on
the instance size.
- large: 5 minutes
- xlarge: 10 minutes
- 2xlarge: 20 minutes
- 3xlarge: 30 minutes
- 4xlarge: 40 minutes
- Formulas: When the actual IOPS of an instance falls below the baseline IOPS of its
instance type, the instance begins to accrue credits and can spend credits to burst
beyond baseline performance anytime. The burst duration of an instance is calculated
based on its credit balance. An instance has a relatively long burst duration when
its actual storage I/O performance is lower than the maximum burst performance. The
following formulas are used to calculate the maximum credit balance that is supported
by an instance type and the actual burst duration of an instance of this instance
type:
- Maximum credit balance = (Maximum burst IOPS - Baseline IOPS) × Maximum burst duration
- Actual burst duration = Maximum credit balance/(Current IOPS - Baseline IOPS)
- For example, assume that an instance of an ecs.g7 instance type has a cloud disk attached
and that the cloud disk can deliver up to 50,000 IOPS. The following table describes
the baseline IOPS, maximum burst IOPS, and burst duration of the cloud disk on the
instance of each ecs.g7 instance type.
Instance type |
Baseline IOPS of the cloud disk |
Maximum burst IOPS of the cloud disk |
Maximum burst duration of the cloud disk (in minutes) |
Maximum credit balance of the cloud disk |
Actual burst duration of the cloud disk (in minutes) |
g7.large |
20,000 |
110,000 |
5 |
(11 - 2) × 5 = 45 |
45/(5 - 2) = 15 |
ecs.g7.xlarge |
40,000 |
110,000 |
10 |
(11 - 4) × 10 = 70 |
70/(5 - 4)= 70 |
ecs.g7.2xlarge |
50,000 |
110,000 |
20 |
(11 - 5) × 20 = 120 |
The performance of the cloud disk is equal to its baseline performance and does not
need to burst.
|
ecs.g7.3xlarge |
70,000 |
110,000 |
30 |
(11 - 7) × 30 = 120 |
The performance of the cloud disk is lower than its baseline performance and does
not need to burst.
|
ecs.g7.4xlarge |
80,000 |
110,000 |
40 |
(11 - 8) × 40 = 120 |
The performance of the cloud disk is lower than its baseline performance and does
not need to burst.
|
For more information about ecs.g7 instance types, see g7, general-purpose instance family.
- Burst storage bandwidth of an instance
- Metrics: represent the limits that an instance type have on the storage bandwidths
of cloud disks.
- Baseline storage bandwidth: the maximum storage bandwidth that an instance type can consistently support for
cloud disks in compliance with an SLA commitment.
- Burst storage bandwidth: the storage bandwidth that an instance type can burst to. Burst storage bandwidths
are time-limited and dependent on the amount of storage bandwidth resources that an
instance provides. No SLA commitments are made for burst storage bandwidths. If an
instance provides sufficient storage bandwidth resources and cloud disks attached
to the instance sustain the highest burst performance supported by the instance type,
the default maximum burst duration supported by the instance type varies based on
the instance size.
- large: 5 minutes
- xlarge: 10 minutes
- 2xlarge: 20 minutes
- 3xlarge: 30 minutes
- 4xlarge: 40 minutes
- Formulas: The burst duration of an instance is calculated based on its credit balance.
An instance has a relatively long burst duration when its actual storage I/O performance
is lower than the maximum burst performance. The following formulas are used to calculate
the maximum credit balance that is supported by an instance type and the actual burst
duration of an instance of this instance type:
- Maximum credit balance = (Maximum burst storage bandwidth - Baseline storage bandwidth)
× Maximum burst duration
- Actual burst duration = Maximum credit balance/(Current storage bandwidth - Baseline
storage bandwidth)
- For example, assume that an instance of an ecs.g7 instance type has a cloud disk attached
and that the cloud disk can deliver a bandwidth of up to 3 Gbit/s. The following table
describes the baseline bandwidth, maximum burst bandwidth, and burst duration of the
cloud disk on the instance of each ecs.g7 instance type.
Instance type |
Baseline bandwidth of the cloud disk (Gbit/s) |
Maximum burst bandwidth of the cloud disk (Gbit/s) |
Maximum burst duration of the cloud disk (in minutes) |
Maximum credit balance of the cloud disk |
Actual burst duration of the cloud disk (in minutes) |
g7.large |
1.5 |
6 |
5 |
(6 - 1.5) × 5 = 22.5 |
22.5/(3 - 1.5) = 15 |
ecs.g7.xlarge |
2 |
6 |
10 |
(6 - 2) × 10 = 40 |
40/(3 - 2) = 40 |
ecs.g7.2xlarge |
3 |
6 |
20 |
(6 - 3) × 20 = 60 |
The performance of the cloud disk is equal to its baseline performance and does not
need to burst.
|
ecs.g7.3xlarge |
4 |
6 |
30 |
(6 - 4) × 30 = 60 |
The performance of the cloud disk is lower than its baseline performance and does
not need to burst.
|
ecs.g7.4xlarge |
5 |
6 |
40 |
(6 - 5) × 40 = 40 |
The performance of the cloud disk is lower than its baseline performance and does
not need to burst.
|
For more information about ecs.g7 instance types, see g7, general-purpose instance family.
Storage I/O performance of new-generation enterprise-level instance families
The following tables describe the storage I/O performance of the new-generation enterprise-level
instance families. For information about other specifications of the instance families,
see Overview of instance families.
Note In these tables, the maximum IOPS is measured at an I/O size of 4 KiB and the maximum
throughput is measured at an I/O size of 1,024 KiB. For information about the test
methods, see
Test the performance of EBS devices.
Table 1. Storage I/O performance of g7se
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.g7se.large |
30,000 |
3 |
375 |
ecs.g7se.xlarge |
60,000 |
4 |
500 |
ecs.g7se.2xlarge |
100,000 |
6 |
750 |
ecs.g7se.3xlarge |
120,000 |
8 |
1,000 |
ecs.g7se.4xlarge |
150,000 |
10 |
1,250 |
ecs.g7se.6xlarge |
200,000 |
12 |
1,500 |
ecs.g7se.8xlarge |
300,000 |
16 |
2,000 |
ecs.g7se.16xlarge |
500,000 |
32 |
4,000 |
ecs.g7se.32xlarge |
1,000,000 |
64 |
8,000 |
Table 2. Storage I/O performance of hfg7
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.hfg7.large |
20,000 |
1.0 |
125 |
ecs.hfg7.xlarge |
30,000 |
1.5 |
187.5 |
ecs.hfg7.2xlarge |
45,000 |
2.0 |
250 |
ecs.hfg7.3xlarge |
60,000 |
2.5 |
312.5 |
ecs.hfg7.4xlarge |
75,000 |
3.0 |
375 |
ecs.hfg7.6xlarge |
90,000 |
4.0 |
500 |
ecs.hfg7.8xlarge |
105,000 |
5.0 |
625 |
ecs.hfg7.12xlarge |
150,000 |
8.0 |
1,000 |
ecs.hfg7.24xlarge |
300,000 |
16.0 |
2,000 |
Table 3. Storage I/O performance of hfc7
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.hfc7.large |
20,000 |
1.0 |
125 |
ecs.hfc7.xlarge |
30,000 |
1.5 |
187.5 |
ecs.hfc7.2xlarge |
45,000 |
2.0 |
250 |
ecs.hfc7.3xlarge |
60,000 |
2.5 |
312.5 |
ecs.hfc7.4xlarge |
75,000 |
3.0 |
375 |
ecs.hfc7.6xlarge |
90,000 |
4.0 |
500 |
ecs.hfc7.8xlarge |
105,000 |
5.0 |
625 |
ecs.hfc7.12xlarge |
150,000 |
8.0 |
1,000 |
ecs.hfc7.24xlarge |
300,000 |
16.0 |
2,000 |
Table 4. Storage I/O performance of hfr7
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.hfr7.large |
20,000 |
1.0 |
125 |
ecs.hfr7.xlarge |
30,000 |
1.5 |
187.5 |
ecs.hfr7.2xlarge |
45,000 |
2.0 |
250 |
ecs.hfr7.3xlarge |
60,000 |
2.5 |
312.5 |
ecs.hfr7.4xlarge |
75,000 |
3.0 |
375 |
ecs.hfr7.6xlarge |
90,000 |
4.0 |
500 |
ecs.hfr7.8xlarge |
105,000 |
5.0 |
625 |
ecs.hfr7.12xlarge |
150,000 |
8.0 |
1,000 |
ecs.hfr7.24xlarge |
300,000 |
16.0 |
2,000 |
Table 5. Storage I/O performance of g6t
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.g6t.large |
20,000 |
1.0 |
125 |
ecs.g6t.xlarge |
40,000 |
1.5 |
187.5 |
ecs.g6t.2xlarge |
50,000 |
2.0 |
250 |
ecs.g6t.4xlarge |
80,000 |
3.0 |
375 |
ecs.g6t.8xlarge |
150,000 |
5.0 |
625 |
ecs.g6t.13xlarge |
240,000 |
8.0 |
1,000 |
ecs.g6t.26xlarge |
480,000 |
16.0 |
2,000 |
Table 6. Storage I/O performance of c6t
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.c6t.large |
20,000 |
1.0 |
125 |
ecs.c6t.xlarge |
40,000 |
1.5 |
187.5 |
ecs.c6t.2xlarge |
50,000 |
2.0 |
250 |
ecs.c6t.4xlarge |
80,000 |
3.0 |
375 |
ecs.c6t.8xlarge |
150,000 |
5.0 |
625 |
ecs.c6t.13xlarge |
240,000 |
8.0 |
1,000 |
ecs.c6t.26xlarge |
480,000 |
16.0 |
2,000 |
Table 7. Storage I/O performance of g6e
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.g6e.large |
20,000 |
1.0 |
125 |
ecs.g6e.xlarge |
40,000 |
1.5 |
187.5 |
ecs.g6e.2xlarge |
50,000 |
2.0 |
250 |
ecs.g6e.4xlarge |
80,000 |
3.0 |
375 |
ecs.g6e.8xlarge |
150,000 |
5.0 |
625 |
ecs.g6e.13xlarge |
240,000 |
8.0 |
1,000 |
ecs.g6e.26xlarge |
480,000 |
16.0 |
2,000 |
Table 8. Storage I/O performance of c6e
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.c6e.large |
20,000 |
1.0 |
125 |
ecs.c6e.xlarge |
40,000 |
1.5 |
187.5 |
ecs.c6e.2xlarge |
50,000 |
2.0 |
250 |
ecs.c6e.4xlarge |
80,000 |
3.0 |
375 |
ecs.c6e.8xlarge |
150,000 |
5.0 |
625 |
ecs.c6e.13xlarge |
240,000 |
8.0 |
1,000 |
ecs.c6e.26xlarge |
480,000 |
16.0 |
2,000 |
Table 9. Storage I/O performance of r6e
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.r6e.large |
20,000 |
1.0 |
125 |
ecs.r6e.xlarge |
40,000 |
1.5 |
187.5 |
ecs.r6e.2xlarge |
50,000 |
2.0 |
250 |
ecs.r6e.4xlarge |
80,000 |
3.0 |
375 |
ecs.r6e.8xlarge |
150,000 |
5.0 |
625 |
ecs.r6e.13xlarge |
240,000 |
8.0 |
1,000 |
ecs.r6e.26xlarge |
480,000 |
16.0 |
2,000 |
Table 10. Storage I/O performance of g6
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.g6.large |
10,000 |
1.0 |
125 |
ecs.g6.xlarge |
20,000 |
1.5 |
187.5 |
ecs.g6.2xlarge |
25,000 |
2.0 |
250 |
ecs.g6.3xlarge |
30,000 |
2.5 |
312.5 |
ecs.g6.4xlarge |
40,000 |
3.0 |
375 |
ecs.g6.6xlarge |
50,000 |
4.0 |
500 |
ecs.g6.8xlarge |
60,000 |
5.0 |
625 |
ecs.g6.13xlarge |
100,000 |
8.0 |
1,000 |
ecs.g6.26xlarge |
200,000 |
16.0 |
2,000 |
Table 11. Storage I/O performance of c6
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.c6.large |
10,000 |
1.0 |
125 |
ecs.c6.xlarge |
20,000 |
1.5 |
187.5 |
ecs.c6.2xlarge |
25,000 |
2.0 |
250 |
ecs.c6.3xlarge |
30,000 |
2.5 |
312.5 |
ecs.c6.4xlarge |
40,000 |
3.0 |
375 |
ecs.c6.6xlarge |
50,000 |
4.0 |
500 |
ecs.c6.8xlarge |
60,000 |
5.0 |
625 |
ecs.c6.13xlarge |
100,000 |
8.0 |
1,000 |
ecs.c6.26xlarge |
200,000 |
16.0 |
2,000 |
Table 12. Storage I/O performance of r6
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.r6.large |
10,000 |
1.0 |
125 |
ecs.r6.xlarge |
20,000 |
1.5 |
187.5 |
ecs.r6.2xlarge |
25,000 |
2.0 |
250 |
ecs.r6.3xlarge |
30,000 |
2.5 |
312.5 |
ecs.r6.4xlarge |
40,000 |
3.0 |
375 |
ecs.r6.6xlarge |
50,000 |
4.0 |
500 |
ecs.r6.8xlarge |
60,000 |
5.0 |
625 |
ecs.r6.13xlarge |
100,000 |
8.0 |
1,000 |
ecs.r6.26xlarge |
200,000 |
16.0 |
2,000 |
Table 13. Storage I/O performance of hfg6
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.hfg6.large |
10,000 |
1.0 |
125 |
ecs.hfg6.xlarge |
20,000 |
1.5 |
187.5 |
ecs.hfg6.2xlarge |
25,000 |
2.0 |
250 |
ecs.hfg6.3xlarge |
30,000 |
2.5 |
312.5 |
ecs.hfg6.4xlarge |
40,000 |
3.0 |
375 |
ecs.hfg6.6xlarge |
50,000 |
4.0 |
500 |
ecs.hfg6.8xlarge |
60,000 |
5.0 |
625 |
ecs.hfg6.10xlarge |
100,000 |
8.0 |
1,000 |
ecs.hfg6.16xlarge |
120,000 |
10.0 |
1,250 |
ecs.hfg6.20xlarge |
200,000 |
16.0 |
2,000 |
Table 14. Storage I/O performance of hfc6
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.hfc6.large |
10,000 |
1.0 |
125 |
ecs.hfc6.xlarge |
20,000 |
1.5 |
187.5 |
ecs.hfc6.2xlarge |
25,000 |
2.0 |
250 |
ecs.hfc6.3xlarge |
30,000 |
2.5 |
312.5 |
ecs.hfc6.4xlarge |
40,000 |
3.0 |
375 |
ecs.hfc6.6xlarge |
50,000 |
4.0 |
500 |
ecs.hfc6.8xlarge |
60,000 |
5.0 |
625 |
ecs.hfc6.10xlarge |
100,000 |
8.0 |
1,000 |
ecs.hfc6.16xlarge |
120,000 |
10.0 |
1,250 |
ecs.hfc6.20xlarge |
200,000 |
16.0 |
2,000 |
Table 15. Storage I/O performance of hfr6
Instance type |
Maximum IOPS (4 KiB I/O) |
Maximum storage bandwidth (Gbit/s) |
Maximum throughput (MB/s, 1,024 KiB I/O) |
ecs.hfr6.large |
10,000 |
1.0 |
125 |
ecs.hfr6.xlarge |
20,000 |
1.5 |
187.5 |
ecs.hfr6.2xlarge |
25,000 |
2.0 |
250 |
ecs.hfr6.3xlarge |
30,000 |
2.5 |
312.5 |
ecs.hfr6.4xlarge |
40,000 |
3.0 |
375 |
ecs.hfr6.6xlarge |
50,000 |
4.0 |
500 |
ecs.hfr6.8xlarge |
60,000 |
5.0 |
625 |
ecs.hfr6.10xlarge |
100,000 |
8.0 |
1,000 |
ecs.hfr6.16xlarge |
120,000 |
10.0 |
1,250 |
ecs.hfr6.20xlarge |
200,000 |
16.0 |
2,000 |