a4academics.com

Download Report

Transcript a4academics.com

PARAMETER-AWARE I/O
MANAGEMENT FOR SOLID
STATE DISKS
Jaehong Kim, Sangwoon Jung,
Jin-Soo Kim, Member,IEEE, and
Jaehyuk Huh, IEEE
CONTENTS

INTRODUCTION

PERFOMANCE PARAMETERS IN SSDS

MEASURING THE CLUSTERED PAGE SIZE

MEASURING THE CLUSTERED BLOCK SIZE

MEASURING THE READ BUFFER SIZE

MEASURING THE WRITE BUFFER SIZE

LINUX
GENERIC
BLOCK
LAYER
introduction
A Solid-State Disk (SSD) is a data
storage device that emulates a
hard disk drive (HDD)
there are no moving parts to an
SSD
information is stored in microchips
A typical SSD uses NAND-based
flash memory
SSDs are entirely different from
hard disk drives(HDDs)
Read/write bandwidth of SSDs is higher than that of HDDs
SSDs have no seek time since they have no moving parts
such as arms and spinning platters.
Provide higher durability against shock, vibration and
operating temperature
SSDs consume less power than HDDs
Faster start up
Extremely low read latency
The performance does not depends on the location of data
Real SSD hardware prototype
SSD LOGIC COMPONENTS
NAND FLASH MEMORY

Non-volatile semi conductor device

organized into blocks where each block consists of
a fixed number of pages.

Page- unit of read and write operation

Each
page
metadata
stores
and
information.
data
ECC(Error
and
corresponding
Correction
Code)
FLASH TRANSLATION LAYER

Main control software in SSD

hides the complexity of flash


Maps Logical Block Addresses(LBA) from the
host to physical addresses in flash memory.
Garbage collection-a process that erases dirty
blocks and recycles these pages.
PERFOMANCE PARAMETERS IN SSDs
SSDs have different performance
parameters
compared with HDDs
Eg: unit size of read/write operation in
SSD is clustered page size and in HDD, it is the
sector size.

Actual value of parameter will depend on type of
NAND flash memory and internal architecture of
SSDs.
considered performance parameters
 Clustered
page
 Clustered
block
 Size
of read buffer
 Size
of write buffer
Methodology to extract performance
parameters
Measuring the clustered page size



the unit of read and write operations inside SSDs
Adjusting the size of data transfer to the clustered page
size, can enhance the I/O performance, since the FTL
does not need to read or write more data than requested.
Microbenchmark- exploits the difference in write latency
depending on whether the write request is aligned to the
clustered page boundary or not.
Measuring the clustered block size

Unit of erase operation

if there are many random writes whose sizes are smaller
than the clustered block size, the write bandwidth will
suffer from the overheads of copying valid pages.

Microbenchmark
exploits
the
difference
in
write
bandwidth between sequential and random writes.

As the request size approaches to the clustered block
size, the gap between the bandwidth of sequential writes
and that of random writes will become smaller.
Measuring the read buffer capacity

To improve the read performance

if the size of the read request is larger than the size of
the read buffer, then the data has to be read directly
from NAND flash memory

Uses two benchmarks
i) to measure the latency of read requests served from
the read buffer
ii) to measure the latency of read requests which are
served from NAND flash memory directly
Measuring the write buffer
capacity

to enhance the write performance by temporarily storing
the updated data into the DRAM buffer.

when the size of write requests exceeds the write buffer
size, some of data should be flushed into NAND flash
memory.

Uses 2 microbenchmarks
i) measures the time taken to write data into the
write buffer
PARAMETER-AWARE I/O COMPONENT
DESIGN


Using the extracted performance parameters
from
different
SSDs,
modifies
the
NOOPscheduler to a parameter-aware I/O
scheduler for SSDs.
2 components
i)generic block layer :merges block requests
from the file system layer to optimize the request
size.
ii)I/O scheduler :schedules I/O requests to
reduce the seek times of hard disks
Optimizing linux generic block
layer

Merges consecutive requests from the file system

increasing the request size hurts the response times for
individual requests and consume more memory buffer
cache resources

propose two designs
i) Parameter-aware splitting (PAS)
ii) parameter-aware splitting and aligning (PASA)
Parameter-aware splitting(PAS) and aligning(PASA)
achieve short response time ,since entire request
can be sent to the DRAM buffer in SSDs.
Linux I/O Scheduler Optimization

redesign the I/O scheduler to make requests aligned
and well-split for SSDs

Parameter-aware I/O scheduler (PAI): maintains two
queues,
i) normal queue :manages well-split requests
ii)pending queue :manages the badly-split request

PAI dispatches the requests in the normal queue before
b)Parameter-aware I/O scheduler(PAI)
PERFORMANCE EVALUATION

use the NoPAS-NOOP (NoPAS: No-Parameter-AwareSplitting) as the baseline configuration

compare NoPAS-PAI, PAS-PAI and PASA-PAI to the
baseline.

Uses NOOP scheduler as the baseline I/O scheduler

Uses 2 benchmarks
i)postmark
ii)filebench
Composition of Requests Dispatched from PAI to the Block Device
Driver (Postmark with SSD-A)






For postmark, NoPAS-PAI shows mixed results
the performance with NoPAS-PAI can either improve or
drop, depending on the file size and the SSDs
Combining PAS or PASA with PAI provides noticeable
performance improvements over baselines for large file
sizes.
For the 8MB file configuration, the total numbers of
requests submitted to an SSD with PAS and PASA
increase compared to NoPAS
The ratio of adjusted requests in PAS and PASA is higher
than that in NoPAS
The ratio of aligned requests in PASA is higher than that
in PAS and NoPAS
Filebench

uses 3 profiles
i)websever : reads the fileset of random sizes and
appends a log file using writes
ii)filesever : creates, writes, appends and deletes
the set of files randomly
iii)OLTP(online transaction processing) : specifies
datafiles, logfiles and database
write threads.
conclusion




proposed a new methodology that can extract several
parameters SSDs and apply them to two components
of a Linux operating system to improve the bandwidth
of SSDs
By optimizing the OS components with the extracted
parameters, the write bandwidths for postmark and
filebench improved by up to 24 percent and 321
percent, respectively.
understanding of the internal parameters of SSDs
help to model SSD systems more accurately for system
studies
this study shows that even a limited information of
SSD internals can improve file system performance
reference
[1] K. Yotov, K. Pingali, and P. Stodghill, “Automatic
Measurement of Memory Hierarchy Parameters,” Proc. ACM
SIGMETRICS Conf., pp. 181-192, 2005.
[2] J.-H. Kim, D. Jung, J.-S. Kim, and J. Huh, “A Methodology
for Extracting Performance Parameters in Solid State Disks
(ssds),” Proc. IEEE/ACM Int’l Symp. Modeling, Analysis, and
Simulation of Computer and Telecomm. Systems (MASCOTS
’09), pp. 133-143, 2009.
[3] D.P. Bovet and M. Cesati, “Understanding the Linux
Kernel,” O’Reilly Media Inc., 2005.