Top Banner
1 FlashVM: Virtual Memory Management on Flash Mohit Saxena Michael M. Swift University of WisconsinMadison
29

FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

Sep 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

1

FlashVM: Virtual Memory Management on Flash

Mohit Saxena

Michael M. Swift

University of Wisconsin‐Madison

Page 2: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

2

Is Virtual Memory Relevant?

• There is never enough DRAM – Price, power and DIMM slots limit amount

– Application memory footprints are ever‐increasing

• VM is no longer DRAM+Disk– New memory technologies: Flash, PCM, Memristor ….

Page 3: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

3

Flash and Virtual Memory

DRAM

DRAM is expensive

Disk is slow

Flash is cheap and fast

Flash for Virtual Memory

Storage+VM

Disk

VMStorage

Flash

Page 4: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

4

In this talk

• Flash for Virtual Memory– Does it improve system price/performance?

– What OS changes are required?

• FlashVM– System architecture using dedicated flash for VM

– Extension to core VM subsystem in the Linux kernel

– Improved performance, reliability and garbage collection

Page 5: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

5

Outline

• Introduction

• Background– Flash and VM

• Design

• Evaluation

• Conclusions

Page 6: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

6

Flash 101

• Flash is not disk– Faster random access performance: 0.1 vs. 2‐3 ms for disk– No in‐place modify: write only to erased location

• Flash blocks wear out– Erasures limited to 10,000‐100,000 per block– Reliability dropping with increasing MLC flash density

• Flash devices age– Log‐structured writes leave few clean blocks after extensive use

– Performance drops by up to 85% on some SSDs– Requires garbage collection of free blocks

Page 7: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

7

Virtual Memory 101

DiskVM

FlashVM

Memory Size M

Execution Time T M

Reduced DRAM Same performance Lower system price

TFaster execution No additional DRAMSimilar system price

No Locality

Unused Memory

Page 8: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

8

Outline

• Introduction

• Background

• Design– Performance

– Reliability

– Garbage Collection

• Evaluation

• Conclusions

Page 9: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

9

FlashVM Hierarchy

Block Device Driver

Page Swapping

DRAM

FlashVM Manager:Performance, Reliability and Garbage Collection

Dedicated FlashCost‐effective for VM

Reduced FS interferenceDisk

Disk Scheduler

Block Layer

VM Memory Manager

Dedicated Flash

MLC NAND

Page 10: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

10

VM Performance

• Challenge– VM systems optimized for disk performance– Slow random reads, high access and seek costs, symmetrical read/write performance

• FlashVM de‐diskifies VM:– Page write back– Page scanning– Disk scheduling– Page prefetching

Parameter Tuning

Page 11: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

11

Page Prefetching

Linux

swap map

FREE

FREE

BAD

FlashVM

VM assumption

Seek and rotational delays are longer than the transfer cost of extra blocks

Linux sequential prefetchingMinimize costly disk seeks

Delimited by free and bad blocks

FlashVM prefetching

Exploit fast flash random reads and spatial locality in reference pattern

Seek over free and bad blocks

Request

Page 12: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

12

Stride Prefetching

• FlashVM uses stride prefetching– Exploit temporal locality in the reference pattern

– Exploit cheap seeks for fast random access 

– Fetch two extra blocks in the stride

Request

Request

Request

Request

Request

swap map

Page 13: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

The Reliability Problem

• Challenge: Reduce the number of writes– Flash chips lose durability after 10,000 – 100,000 writes

– Actual write‐lifetime can be two orders of magnitude less

– Past solutions:• Disk‐based write caches for streamed I/O

• De‐duplication and compression for storage

• FlashVM uses knowledge of page content and state– Dirty Page sampling

– Zero Page sharing

Page 14: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

14

Page Sampling

Dirty?

Dirty

Clean

Inactive LRUPage List

free_pages

sample

1‐sR

Disk

LinuxWrite‐back all evicted 

dirty pages

Flash

FlashVMPrioritize young cleanover old dirty pages

FreePage List

sR

Page 15: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

15

Adaptive Sampling

• Challenge: Reference pattern variations– Write‐mostly: Many dirty pages

– Read‐mostly: Many clean pages

• FlashVM adapts sampling rate– Maintain a moving average for the write rate

– Low write rate  Increase sR• Aggressively skip dirty pages

– High write rate  Converge to native Linux• Evict dirty pages to relieve memory pressure

Page 16: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

16

Outline

• Introduction

• Why FlashVM?

• Design– Performance

– Reliability

– Garbage Collection

• Evaluation

• Conclusions

Page 17: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

17

write ‘cluster A’ at block 0write ‘cluster B’ at block 100

Flash Cleaning

• All writes to flash go to a new location

• Discard commandnotifies SSD that blocks are unused

• Benefits:– More free blocks for writing

– Avoids copying data for partial over‐writes

free ‘cluster A’ & discard

write ‘cluster D’ at block 0

write ‘cluster A’ at block 0

free ‘cluster A’write ‘cluster B’ at block 100free ‘cluster B’write ‘cluster C’ at block 200

Page 18: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

18

0

100

200

300

400

500

read4KB

write4KB

erase128KB

discard4KB

discard1MB

discard10MB

discard100MB

discard1GB

Operation

Latency (m

s)Discard is Expensive

OCZ‐Vertex, Indilinx controller

Operation Latency

< 0.5 ms 2 ms

55 ms

417 ms

Page 19: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

19

Discard and VM

• Native Linux VM has limited discard support– Invokes discard before reusing free page clusters

– Pays high fixed cost for small sets of pages

• FlashVM optimizes to reduce discard cost– Avoid unnecessary discards: dummy discard

– Discard larger sizes to amortize cost: merged discard

Page 20: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

20

Dummy Discard

• Observation: Overwriting a block – notifies SSD it is empty

– after discarding it, uses the free space made available by discard

• FlashVM implements dummy discard– Monitors rate of allocation

– Virtualize discard by reusing blocks likely to be overwritten soon

Overwrite

DiscardOverwrite

Page 21: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

21

Merged Discard

• Native Linux invokes discard once per page cluster– Result: 55 ms latency for freeing 32 pages (128K)

• FlashVM batch many free pages– Defer discard until 100 MB of free pages available

– Pages discarded may be non‐contiguous

Discard

Discard

Discard

Discard

Page 22: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

22

Design Summary

• Performance improvements– Parameter Tuning: page write back, page scanning, disk scheduling

– Improved/stride prefetching

• Reliability improvements– Reduced writes: page sampling and sharing

• Garbage collection improvements– Merged and Dummy discard

Page 23: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

23

Outline

• Introduction

• Motivation

• Design

• Evaluation– Performance and memory savings

– Reliability and garbage collection

• Conclusions

Page 24: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

24

Methodology

• System and Devices– 2.5 GHz Intel Core 2 Quad, Linux 2.6.28 kernel

– IBM, Intel X‐25M, OCZ‐Vertex trim‐capable SSDs

• Application Workloads– ImageMagick ‐ resizing a large JPEG image by 500%

– Spin – model checking for 10 million states

– SpecJBB – 16 concurrent warehouses

– memcached server – key‐value store for 1 million keys

Page 25: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

25

Application Performance and Memory Savings

0

10

20

30

40

50

60

70

ImageMagick Spin SpecJBB memcached-store

memcached-lookup

Applications

Perf

orm

ance

/Mem

ory

Savi

ngs

Runtime Memory Use

Const Memory94% less execution time

Const Performance84% memory savings

Page 26: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

26

Write Reduction

0

20

40

60

80

100

120

Uniform PageSampling

Adaptive PageSampling

Page Sharing

Write Reduction Technique

Perfo

rman

ce/W

rites

Performance Writes

7% overhead, 12% reduction 

14% reduction 

93% reduction 

ImageMagick

Spin

Page 27: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

27

Garbage Collection

1

10

100

1000

10000

ImageMagick Spin memcached

Application

Elap

sed

Tim

e (s

)

Linux/Discard FlashVM Linux/No Discard

10X faster15% slower

Page 28: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

28

Conclusions

• FlashVM: Virtual Memory Management on Flash– Dedicated flash for paging– Improved performance, reliability and garbage collection

• More opportunities and challenges for OS design– Scaling FlashVM to massive memory capacities (terabytes!)

– Future memory technologies: PCM and Memristors

Page 29: FlashVM: Virtual Memory Management on Flash...Flash 101 • Flash is not disk – Faster random access performance: 0.1 vs. 2‐3 ms for disk – No in‐place modify: write only to

29

Thanks!

FlashVM: Virtual Memory Management on Flash

Mohit SaxenaMichael M. Swift

University of Wisconsin‐Madisonhttp://pages.cs.wisc.edu/~msaxena/FlashVM.html