In Amazon EBS documentation, it mentions that :
Transaction-intensive applications are sensitive to increased I/O latency and are well-suited for SSD-backed volumes. You can maintain high IOPS while keeping latency down by maintaining a low queue length and a high number of IOPS available to the volume. Consistently driving more IOPS to a volume than it has available can cause increased I/O latency.
Throughput-intensive applications are less sensitive to increased I/O latency, and are well-suited for HDD-backed volumes. You can maintain high throughput to HDD-backed volumes by maintaining a high queue length when performing large, sequential I/O.
What are the differences between "transaction-intensive applications" & "throughput-intensive" applications?
CodePudding user response:
Throughput-intensive applications are applications that need to read/write large amounts of data. Think log ingestion, data warehousing or big data purposes. HDD-backed volumes like st1
& sc1
are recommended for these applications as the dominant performance attribute is the throughput (the amount of data going through) & will provide the lowest storage cost in most cases.
HDD-backed volumes only deliver optimal performance for large, sequential & most of the time, infrequently accessed I/O operations.
On the other hand, transaction-intensive applications are applications where the dominant performance attribute is IOPS. Think mission-critical, low-latency applications like databases, that are sensitive to storage performance and consistency. In particular, IOPS SSD volumes like io1
& io2
use a consistent IOPS rate, which you specify when you create the volume - this means you can get a sustained IOPS performance which you can't with any other EBS volume type.
SSD-backed volumes only deliver optimal performance for small, frequent I/O operations.
I assume you are asking this question to decide on the storage type for your EBS volume - essentially, always use gp3
unless:
- you need very high consistent IOPS for random I/O, in which case you should be using provisioned IOPS volume types like
io1
&io2
- you need to store lots of data & IOPS is not important in which case use
sc1
as a cold (storage) HDD - you need to store lots of data & need frequent access in which case you should use
st1
as a throughput optimized HDD