TPDS

advertisement
Issues and Challenges in
the Performance Analysis
of Real Disk Arrays
Elizabeth Varki, Arif Merchant,
Jianzhang Xu and Xiaozhou Qiu
Presented by:Soumya Eachempati
RAID
• Redundant Array of Inexpensive Disks
• Redundancy and Striping
– Capacity
– Speed (Parallelism)
– Availability of storage systems
• Multiple disks, large caches, array controllers
- implement load-balancing, request
coalescing, adaptive prefetching.
Why - Performance
Modeling
• Storage systems are slow.
• Any improvement in the performance would
escalate the system performance for I/O
intensive applications.
• Metrics used:
– Response time
– Throughput
– Queue length
Approaches
• Analytic - quick and dirty, less
expensive
• Simulation - more accurate, lot of effort
• So which method will you choose?
• Authors develop analytic model that
includes array controller optimizations
Previous Work
• Disk array performance
• Efficient Caching algorithms
• This paper models the parallelism of disk arrays
and effects of caching on performance.
• Presents a Baseline model with known
parameter values.
• Extraction of array controller optimizations using
the baseline model and workloads that isolate
specific optimizations.
Disk Array Architecture
RAID 1/0 configuration
Key Components
Some Assumptions
• M jobs generate synchronous requests.
• At-most one request from each stream at the
disk array.
• Each job spends some time at the CPU
before submitting request to the disk array.
• Read only and write only requests stream.
• No queueing at the CPU/terminal.
Read Model
Write Model
Response time
• Array_response_time[m] =
cache_response_time[m] +
disks_response_time[m]
• Array_throughput[m] = m / (CPU_delay
+ array_response_time[m])
• Cache_queue[m] =
cache_response_time[m] *
array_throughput[m] (Little’s law)
Response time
• Arrival theorem states that the number of jobs
“seen” by a job upon arrival at a subsystem is
equal to the mean queue length at the
subsystem computed when the network has
one less job.
• The response time of the arriving job is equal
to the sum of the arriving job’s service time
plus the time required to service the jobs
seen ahead.
Baseline model
parameters
•
•
•
•
•
Disk Service time
Parallelism Overhead
Disk access probability
Cache parameters
Write model input parameters.
Disk Service time
• Very important to get an accurate
estimate.
• Seek distance - disk scheduling policy
and location of disk IO requests.
disk_ service_ tim e seek _ tim e rotational_ latency transfer_ tim e
diskIO_ size
disk _ transfer_ rate
Mean_ rotational_ latency constant  0.5 * disk_ rotation_ tim e
transfer_ tim e
Seek_ tim e    seek _ distance     full_ stroke_ distance (1 disk_ queue)
Disk positioning time
Degree of sequentiality has minimal effect for disk_queue > 3
Disk positioning time linear function of disk_queue length for
disk_queue < 3 for simplicity.
Cyclic dependancy
• Disk service time depends on disk
queue length which again depends on
disk service time.
• Assume disk queue length is an input
parameter.
• If CPU_delay = 0 then disk_queue = M *
disk_access_probability.
Parameters
• Parallel_overhead = max_position_time disk_position_time
• Disk_access_probability = cache_miss_probability *
num_diskIOs_per_request / stripe_width
• Cache_hit = 1 - (read_ahead_miss *
re_reference_miss)
• Cache_service_time = request_size /
cache_transfer_rate.
• Once destage_threshold is reached, writes data to all
the disks at a time.
– µ = stripe_width / 2 * disk_service_time
Array controller
Optimizations
• Access coalescing policy
• Redundancy based load balancing
policy
• Adaptive prefetching
• Simplest baseline model - small random
read requests with CPU_delay = 0.
Workload
Characterization
Setup
• Trace of all IO activity at the device
driver level.
• Trace contains
– I/O submission and completion times.
– Logical addresses
– Sizes of requests
Optimizations
• Disk I/O accesses to contiguous data on the
same disk coalesced into a single disk IO.
• Example : 96KB striped across 3 disks with
stripe unit size = 16KB.
• Redundancy load balancing
– Single request distributed to both the disk and its
mirror. (transfer time reduction)
– 2 different requests to the disks and its mirrors.
(queue length reduction)
Policy effects
• Access coalescing and load balancing effect
number of disk IO requests per request.
• Large request sizes > stripe_width *
stripe_unit_size
• Num_diskIOs_per_request = stripe_width
(transfer time reduction)
= stripe_width / 2 for disk_queue_length
reduction.
Access Coalescing
• Random workloads - caching is eliminated.
• Using large request sizes both the policies
can be evaluated > stripe_width / 2
• Adaptive prefetching: Sequential read
requests - workload.
• Explicit read-ahead is turned off.
• Re-reference hit is zero.
Modeling Adaptive prefetching
and load balancing
• Num_disIOs_per_request = stripe_width for
request_size > stripe_width * stripe_unit_size
• Ceiling(requests_size / stripe_unit_size)
Load Balancing
• Workload consists of same-sized requests.
Write-back caching
• Size at-most 2 stripes.
• Large requests - bypass the cache.
Validation
• Model performs better for random than
sequential Ios
• Random Reads - 3.7%
• Random writes - 5.5%
• Sequential reads - 8.8%
• Sequential writes - 8.0%
• Adaptive prefetching works well for disk queue
length < 4.
• Disk writes and disk reads similar performance.
Challenges
• Disk parameters disk queue length affects the
caching policies as well.
• Paucity of data.(Bus transfer rate 35% higher)
• Performance as a function of disk array
controller optimizations, array caching
policies, workload distributions along with
disk service time, the stripe unit size and
stripe width.
• Better Approximation of disk queue length.
THANK YOU
Questions?
Download