520 likes | 694 Views
Revisiting Widely Held SSD Expectations and Rethinking System-Level Implication. Myoungsoo Jung (UT Dallas) Mahmut Kandemir (PSU) The University of Texas at Dallas Computer Architecture and Memory Systems Lab. Motivation Evaluation Setup Testing Expectations on Reads Writes
E N D
Revisiting Widely Held SSD Expectations and Rethinking System-Level Implication Myoungsoo Jung (UT Dallas) Mahmut Kandemir (PSU) The University of Texas at Dallas Computer Architecture and Memory Systems Lab.
Motivation • Evaluation Setup • Testing Expectations on • Reads • Writes • Advanced Schemes
Motivation • Evaluation Setup • Testing Expectations on • Reads • Writes • Advanced Schemes
We know SSDs! 10x~100x better than writes Reads Reliable (no erase) Fast random accesses Less overheads Writes GC Impacts DRAM Buffer Faster than HDD
We are carefully using them!! Read Cache Reads Memory Extension Read-Only Storage Virtual Memory Writes Burst Buffer Checkpointing Swap/Hibernation Management
Then, why do we need to rethink? NAND Core Architecture • Have shrank 5x to 2x nm • Less reliable / extra operations • Longer latency • Multiple channels and pipelining • Queue/IO rescheduling methods • Internal DRAM buffer cache Firmware/OS Packaging • Advanced mapping algorithms • TRIM • Background task managements • Multiple dies and planes • Package-level queue • ECC engines • Fast data movement interfaces
OS Admin HPC App Reliability on Reads Write Performance/Background Tasks OS Supports Read Performance Firmware/OS Architecture Packaging NAND Core
Motivation • Evaluation Setup • Testing Expectations on • Reads • Writes • Advanced Schemes
SSD Test-Beds Multi-core SSD DRAM-less SSD High-reliable SSD Over-provisioned SSD
Tools • Intel Iometer • LeCroy Sierra M6-1 SATA protocol analyzer • In-house AHCI minport driver
Reliability on Reads Write Performance/ Background Tasks OS Supports Read Performance Firmware/OS Architecture Packaging NAND Core
Are SSDs good for applications that exhibit mostly random reads? • Performance values with random read accesses are worse than other types of access patterns and operations Observation
Are SSDs good for applications that exhibit mostly random reads? 39% 59% 23% [SSD-C] [SSD-L] [SSD-Z]
Are SSDs good for applications that exhibit mostly random reads? 23% ~ 59% of latency values with random reads [SSD-C] [SSD-L] [SSD-Z]
Are SSDs good for applications that exhibit mostly random reads? No! Why? HOST Address translation for reads/ address remapping for writes
Are SSDs good for applications that exhibit mostly random reads? No! Why? • Rand. writes Seq. writes (by remapping addresses on writes) • Lack of internal parallelism on random reads • Resource conflicts on random accesses
Can we achieve sustained read performance with seq. accesses? • Sequential read performance characteristics get worse with aging and as I/O requests are being processed Observation
Can we achieve sustained read performance with seq. accesses? Most I/O requests are served in 200 us [SSD-C] [SSD-L] [SSD-Z]
Can we achieve sustained read performance with seq. accesses? 2x ~ 3x worse than pristine state SSDs [SSD-C] [SSD-L] [SSD-Z]
Can we achieve sustained read performance with seq. accesses? No! Why? • We believe that this performance degradation on reads is mainly caused by • Fragmented physical data layout
Reliability on Reads Write Performance/ Background Tasks OS Supports Read Performance Firmware/OS Architecture Packaging NAND Core
Do program/erase (PE) cycles of SSDs increase during read only operations? • Read requests can shorten the SSDs lifespan • PE cycles on reads are not well managed by underlying firmware Observation
Do program/erase (PE) cycles of SSDs increase during read only operations? Reach 1% ~ 50% of PE cycles on writes 247x 12x [PE cycles on seq. access pattern] [PE cycles on rand. access pattern] 1 hour I/O services per evaluation round
Do program/erase (PE) cycles of SSDs increase during read only operations? Unfortunately, Yes.Why? Vpass Vpass 0V Vpass Vpass Can gain charge (need to perform an erase)
Reliability on Reads Write Performance/ Background Tasks OS Supports Read Performance Firmware/OS Architecture Packaging NAND Core
TRIM FILE A FILE B TRIM INVALID INVALID INVALID VALID INVALID INVALID INVALID VALID VALID VALID Can be wiped out
Can TRIM command reduce GC overheads? • SSDs do not trim all the data • SSD performance with TRIM command is strongly related to the TRIM command submission patterns (SEQ-TRIM vs. RND-TRIM) Observation
Can TRIM command reduce GC overheads? SEQ-TRIM = Pristine Pristine (Trimmed SSD = pristine state SSD??) RND-TRIM = NON-TRIM [SSD-C] [SSD-Z]
Can TRIM command reduce GC overheads? [SSD-C] [SSD-Z]
Please take a look!! • There exist 25 questions we tested • In the paper, we have 59 different types of empirical evaluation including : • Overheads on runtime bad block managements, • ECC overheads • Physical data layout performance impact • DRAM caching impact • Background tasks and etc.
Reliability on Reads Write Performance OS Supports Read Performance Firmware/OS Architecture Packaging NAND Core
How much impact does the worst-case latency have on modern SSDs? • The worst-case latencies on fully-utilized SSDs are much worse than that of HDDs
How much impact does the worst-case latency have on modern SSDs? 2x ~ 173x better than Enterprise-scale HDD 12x ~ 17x worse than 10K HDD [Average latency -- SSDs vs. enterprise HDD] [Worst-case latency -- SSDs vs. enterprise HDD]
What is the correlation between the worst-case latency and throughput? • SSD latency and bandwidth become 11x and 3x respectively worse than normal writes • Performance degradation on the writes is not recovered even after many GCs are executed Observation
What is the correlation between the worst-case latency and throughput? Recovered immediately [SSD-C] [SSD-L]
What is the correlation between the worst-case latency and throughput? Write-cliff Performance is not recovered [SSD-C] [SSD-L]
What is the correlation between the worst-case latency and throughput? Write Cliff.Why? INVALID VALID The range of random access addresses is not covered by the reclaimed block INVALID VALID Update Block VALID INVALID New Block VALID INVALID Data Block Free Block Pool
Could DRAM buffer help the firmware to reduce GC overheads? • DRAM buffers • (before write cliff) offer 4x shorter latency • (after write cliff kicks in) introduce 2x ~ 16x worse latency Observation
Could DRAM buffer help the firmware to reduce GC overheads? 16x worse 4x better [SSD-C] Write-Cliff [SSD-L]
Could DRAM buffer help the firmware to reduce GC overheads? • Flushing of buffered data introduces large number of random accesses, which can in turn accelerate GC invocation on write-cliffs No! Why?
Can background tasks of current SSDs guarantee sustainable performance? 7% (1 idle hour) 0.1% (30 idle secs) [SSD-C BFLUSH] [SSD-L BGC]
Why can’t BGC help with the foreground tasks? • Endurance characteristics • Block erasure acceleration • Power consumption problem on idle
Does TRIM command incur any overheads? • Moderns SSDs require much longer latencies to trim data than normal I/O operation would take • I-TRIM: data invalidation based on address an d prompt response • E-TRIM: block erasure in real-time
Does TRIM command incur any overheads? [SSD-Z] [SSD-L]
Does TRIM command incur any overheads? [SSD-C] [SSD-A]
What types of background tasks exist in modern SSDs? • BFLUSH: flushing in-memory data into flush medium, creating extra room, which can be used to buffer the new incoming I/O req. • BGC: performed GCs in the background
What types of background tasks exist in modern SSDs? [Cache-on SSD] [Cache-off SSD]
What types of background tasks exist in modern SSDs? [Cache-on SSD] [Cache-off SSD]