On Fri, Nov 4, 2016 at 6:45 PM, John Andersen
On 11/02/2016 05:03 PM, Yamaban wrote:
Hint 2: overprovisioning (leaving free non-partitioned space) helps.
Yamaban... Can you elaborate on this?
Wouldn't wear leveling still respect partition boundaries, and unallocated space be ignored?
Aren't there enough free-replacement blocks to handle any bad spots that develop?
What purpose does unallocated space serve?
John, I don't know if modern SSDs still need that treatment. They may all inherently be over-provisioned? == assuming they aren't You seem to be missing the basics of how a SSD works. There is not a rigid mapping of logical sector addresses to physical storage like there is with a HDD. It's all extremely dynamic and the mapping is updated on every single data write. Not just on bad-spot replacement like on a HDD. There is a queue of unused EBs (erase blocks) that get pulled from on every single data write. Even an update of an already allocated data block causes a new, blank EB to be allocated from the queue for the new data, and the formerly used EB is moved to the back of the queue. It takes several milliseconds for that no-longer useful EB to be erased, so the queue has to be deep enough that that EB isn't needed for some milliseconds. There is NOT an unused EB queue per partition, only one per SSD. If a non-encrypted filesystem is used, the SSD can be told which data blocks are empty and it adds those to the queue of available EBs. Basically for unallocated data blocks, there is no backing store. Thus the EB queue for a SSD with a normal 50% filesystem will have approximately 50% of the EBs in the unused EB queue. SSDs work optimally when the unused EB queue is relatively large. If that queue gets too small, the SSD slows down significantly on writes of any kind. If you are using an encrypted FS, then the SSD doesn't know which data blocks have valid data. Thus every data block has to have an actual backing store and the unused EB queue will be very small. If you over-provision by leaving unallocated partition space, the SSD will leave those data blocks with no backing store and all of those EBs will be kept in the unused EB queue. Hope that helps, Greg -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org