#FAQ – Overprovisioning of SSDs
What is write amplification?
All SSD drives are subject to write-amplification. This is a phenomenon inherent in SSD technology. Flash memory must be erased before it can be re-written and so a write to an SSD will often involve a read of existing data and metadata which is then read and updated before being re-written elsewhere. The ratio of writes committed to the flash drive to those coming from the host system is known as ‘write amplification’ . For obvious reasons, lower write amplification is preferred; there is a performance cost as a result of write amplification.
Key factors affecting write amplification are the processes used to maintain optimal use of space on the disk (garbage collection) and even wear (wear leveling).
What is over provisioning?
Over provisioning is the difference between the actual capacity of the flash memory and the logical capacity presented to the operating system. This additional space is used to reduce the impact of processes such as garbage collection on write amplification by giving the disk extra space with which to move data around
How are disks over provisioned
There are three levels of over provisioning. The first of these comes from the difference in calculating capacity with binary and decimal notation, this inherent to all drives and is not counted when calculating percentage over provisioning. The second level of overprovisioning comes from the SSD manufacturer, this cannot be configured. The third level of overprovisioning can be configured by the user using either the Host Protected Area or Partitions. Instructions on how to do this can be found here:
What are the Aerospike recommendations on overprovisioning?
Aerospike recommend that SSDs should be at least 29% overprovisioned (total = manufacturer + user). Write amplification with Aerospike is very low (a factor of around 2) due to the in built defragmentation routines within Aerospike, which reduce write amplification via garbage collection.
Our documentation states that Amazon i2 instances do not require user overprovisioning. This is because testing with our ACT tool has shown that they are already overprovisioned sufficiently.
With a drive that is not sufficiently overprovisioned performance will be good for a few hours before latency starts to increase as a consequence of low level garbage collection. Tests conducted by Aerospike have shown that Amazon i2 SSDs do not show this behavior even when no user extra overprovisioning has been done.