Performance tuning
Amazon EBS
The performance of a block
storage device is commonly measured and quoted in a unit called IOPS, short for
Input/Output Operations per Second (IOPS).
To put the numbers in this
post into perspective, a disk drive spinning at 7,200 RPM can perform at 75 to
100 IOPS whereas a drive spinning at 15,000 RPM will deliver 175 to 210. The
exact number will depend on a number of factors including the access pattern
(random or sequential) and the amount of data transferred per read or write
operation etc
Some of the key factors that affect EBS
QoS are:
- Bandwidth – The rate of data throughput available
- Latency – The time delay for a read/write operation to execute
- Queue depth – The number of outstanding operations waiting to execute to the underlying disks (Traditional or SSD).
Now let us explore those factors and some solutions for the same.
Bandwidth: Use EBS
Optimized Instances:
Usually the Network traffic and EBS traffic is shared in the Amazon
EC2 instance, which means consistent EBS performance depends on amount of
non-EBS related network you send to and from your instance. Since you cannot predict this there will be
contention between EBS and internet traffic and at times, traffic to EBS can
suffer a lot. To solve this problem and improve the performance, AWS introduced
EBS-optimized instances. It is an
optimized configuration stack that provides additional and dedicated
capacity between EC2 and EBS IO. This optimization minimizes the contention
between EBS I/O and other traffic from your Amazon EC2 instance and thereby
gives you best and consistent performance. EBS-optimized instances deliver
dedicated throughput to EBS, with options between 500 Mbps and 1,000 Mbps,
depending on the instance type you use and enables you to effectively use PIOPS
volumes (if attached). This is additional throughput, and
doesn't affect other general purpose network throughput already available on
the instance. EBS-Optimized
instances can be used with both standard and PIOPS volumes.
Standard EBS Volumes
+ EBS-OPT Instances: Scaling
throughput from a number of volume stripes where I/O performance consistency
isn't critical.
PIOPS Volumes +
EBS-OPT Instances: Performance-sensitive production databases that require
dedicated EBS traffic and high IOPS performance. It is recommended to always
use PIOPS with EBS-Optimized instances to get the full performance benefits.
Things to note:
- Not all Amazon EC2 instances are EBS-Optimized. Only the following list is currently supported, please refer AWS documentation for the latest supported types. High-CPU Extra Large (c1.xlarge) ,M1 Large (m1.large), M1 Extra Large (m1.xlarge), High-Memory Double Extra Large (m2.2xlarge), High-Memory Quadruple Extra Large (m2.4xlarge), M3 Extra Large (m3.xlarge) ,M3 Double Extra Large (m3.2xlarge).
- Provisioned IOPS volumes may not be available in every AZ inside a Region where EBS-OPT is available (currently). AWS will sort this going forward. In mean time, you can use an EBS-Optimized instance with Standard EBS volumes as well to get dedicated throughput between your instance and volumes(in such AZ).
EBS Article Series (continued..)
Part 1: Understanding Amazon Elastic Block Store
Part 2: Understanding Standard EBS Volumes
Part 3: Understanding EBS PIOPS Volumes
Part 4: Understanding EBS-Optimized Instances
Part 5: Understanding Latency in EBS
Part 7: 10% of your provisioned IOPS 99.9% of the time
Part 8: Performance Tuning - Pre Warming the EBS volume
Part 9: Performance Tuning - EBS Striping
Part 10: Performance Tuning - IO Block Size
Part 11: Understanding Amazon EBS Snapshots
Part 12: Securing Amazon EBS volumes - EBS Encryption using SecureCloud
Part 13: Amazon EBS Security Best practices and tips
No comments:
Post a Comment