Académique Documents
Professionnel Documents
Culture Documents
Tuning Guide
User Guide
Version 1.0
October 2014
DB15-001127-01
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide
October 2014
For a comprehensive list of changes to this document, see the Revision History.
Avago Technologies, the A logo, LSI, Storage by LSI, DataBolt, MegaRAID, MegaRAID Storage Manager, and
Fusion-MPT are trademarks of Avago Technologies in the United States and other countries. All other brand and
product names may be trademarks of their respective companies.
Data subject to change. Copyright © 2014 Avago Technologies. All Rights Reserved.
Table of Contents
Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Performance Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Performance Measurement Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Performance Testing Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Version 1.0, October 2014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Advance, Version 0.1, March 2014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Chapter 1: Introduction
Use this Performance Tuning Guide for Avago® 6Gb/s SAS and 12Gb/s SAS I/O controller, ROC controller, and expander
products. This document targets only the storage specific performance of these products and aims to convey the
following ideas:
Understand the performance measurement process
Reach a desired performance goal of a storage topology
Debug any unexpected results or bottlenecks that you might encounter during performance measurement
This document focuses on performance related settings and configurations only. See the References section for
related documents. For any initial and basic device bring up, refer to the product documentation for your product.
1.1 Overview
In general, the performance measurement process might have the following steps:
1. Decide what to measure.
2. Understand what to expect.
3. Build your test configuration.
4. Configure different parameters that might influence your performance tests.
5. Run the performance benchmark test and capture the results.
6. Analyze and compare your results with the expected results.
7. If you have any unexpected results troubleshoot issues until you achieve the expected results.
The performance measurement process can vary depending on your measurement objective. The objective might be
a benchmarking exercise for a new product or a debug effort to understand why a certain measurement is not
attaining expected results. This tuning guide organizes its chapters to match the performance measurement process.
Chapter 1, Introduction
Introduces the performance measurement process with commonly used metrics and methodologies.
Reviews factors to consider during the benchmarking process.
Chapter 2, Calculate Expected Performance
Introduces the bottlenecks and limitations that you might encounter during performance measurement. This
chapter helps you learn what to expect from a specific storage configuration with Avago 6Gb/s and 12Gb/s
SAS products.
Chapter 3, Build Your Test Setup
Helps to set up your storage topology and configure specific parameters that can affect what you try to
measure. Addresses settings and options that may not change between different runs of a specific
performance measurement project, such as storage topology.
Chapter 4, Configure Your Test Parameters
Helps with understanding different tunable hardware and software options after your system is setup.
Addresses options that may change between different runs of a specific performance measurement project,
such as different volume configurations of a specific storage topology.
Chapter 5, Benchmark Resources
Helps you choose the correct benchmarking tool or a system monitoring tool that best suites the metric that
you intend to measure. Different settings and tool tips are discussed to get reliable results from these tools
and to validate the results.
This section lists the commonly used primary and secondary performance metrics for performance analysis. Primary
performance metrics include throughput and latency.
Throughput (MBPS and IOPs)
A rate at which the data can be transferred in a unit of time. Throughput is typically given in terms of I/Os per
second (IOPs) and Megabytes per second (MB/s or MBPS). IOPs generally measure data of a random nature.
MB/s generally measure data of a sequential nature.
Often throughput of small I/O sizes are expressed in IOPs, whereas large I/O throughputs are expressed in
MBPS. Both units represent the same quantity, but with a different scale factor. A larger throughput value
indicates greater performance. When expressed as MB/s, throughput is often called bandwidth.
NOTE Avago uses binary base (1 KB = 1024 Bytes) when representing MBPS.
Be wary of tools that might represent MBPS in decimal base (1 KB =
1000 bytes).
Latency
The time to complete an I/O. Under certain conditions latency is the inverse of throughput, and a tradeoff
exists between the two. Latency is generally lower on lightly loaded systems and higher on heavily loaded
systems that issue several I/Os simultaneously. Lower latencies are more desirable and many applications
have requirements around latency thresholds. Several different latency variations follow:
Minimum Latency: Latency of the single fastest I/O measured.
Maximum Latency: Latency of the single slowest I/O measured.
Average Latency: Latency of all I/O measured and averaged together.
Percentile Latency: Maximum latency of a certain percent of all the I/O measured. Typical percentiles
used are 95%, 99% and 99.9%. Use percentile latency to remove extreme, uncharacteristic I/O outliers
that skew the latency calculations.
Histogram Latency: Distribution of latencies, of all the I/O measured, by using predetermined
ranges (buckets).
NOTE When you compare latencies of different products make sure that the
throughput is the same. A storage controller might tune for its
maximum throughput, thus compromise on latency, or vice versa.
Less commonly used performance metrics, or secondary metrics, might prove useful in certain situations depending
on the point of interest. Secondary performance metrics include the following:
Utilization
Percent of time that a resource is used, such as CPU, a storage link, or a disk
Efficiency
A ratio, typically throughput divided by utilization. A commonly used efficiency metric is IOPs / % CPU
Interrupt rate
Number of host driver interrupts per second or per I/O
The metrics outlined in this section describe storage performance at a fundamental level. Most applications and third
party benchmarks have their own method to express performance by using different terminologies that depend on
what is measured. For example, database benchmarks use transactions as the base unit to measure performance. A
transaction could be a single I/O or more complex with multiple read and write I/Os issued to complete a task. Refer to
the application or benchmark documentation before you analyze the metrics it produces.
Any metrics that you use to characterize performance must have two common characteristics:
Reliability
Performance must be a measurement of the system or device in a deterministic, known state. Performance
measured when the storage system or device is in a state unknowingly influenced by external variables, such
as equipment failures or transient cache states, might result in inaccurate measurements.
Repeatability
Performance measurements of a storage system under the same configurations and environment conditions
must always provide the same results. Only then can you consider those results valid. Measurements with a
high level of variance must not be considered as valid, but analyzed closely for any possible discrepancies
between runs. Such analysis helps determine any variables that previously were considered as constants.
This section provides a performance testing overview. Each topic is treated in more detail throughout this document.
As previously listed, any performance task uses the following steps:
1. Decide what to measure.
2. Understand what to expect.
3. Build your test configuration.
4. Configure different parameters that might influence your performance tests.
5. Run the performance benchmark test and capture the results.
6. Analyze and compare your results with the expected results.
7. If you have any unexpected results troubleshoot issues until you achieve the expected results.
In performance analysis, always first ask, “What is being measured?”.
You can quantify performance in many different ways, depending on the intended purpose of the storage system or a
specific device. Some devices focus on delivering as many I/Os as possible. Other devices might focus on delivering
fewer I/Os, but in the fastest manner possible. You must decide the operating conditions under which you measure
the performance of a device or a system. After you make that decision, you can easily decide the host system, storage
topology, media type, link speeds at different interfaces, operating system requirements, RAID configurations,
software tools, and so on.
For example, when you measure storage controller performance, you want to eliminate bottlenecks that the storage
controller does not cause. You also want to control variables that might affect your measurement. The following
high-level guidelines would help you prepare your system for the performance test.
For any measurement, first develop a baseline. That is, a simple, stable test environment and measurement. Try to
deviate from the baseline by only changing one factor at a time to help isolate and root cause any issue that
might occur.
When you have made sure that your test system is ready for measurement and your baseline proves no issues exist,
you may run your benchmark and obtain your results. If you are running your tests for the first time, it is a good
practice to rerun the same tests for repeatability. You might also monitor your results closely to check for any
anomalies such as errors, link failures, improper worker assignments, and so on. When your results are valid, compare
them with the expected results, results from other benchmarks, and benchmarks published by product vendors. If the
results match, use these results as your golden reference for further tests. If these results differ, revisit your test to
understand the bottleneck that stops you from reaching the expected results.
NOTE If you see any performance issues with the Avago products capture all
information about your test to create a support request for Avago.
Work with your FAE to use the LSIGet tool (http://sae.lsi.com/ or
ftp://ftp0.lsil.com/outgoing_perm/CaptureScripts) to capture all
information. This tool captures the information about the host system,
storage topology, RAID volume information, and so on. Also provide
the benchmark related information and any associated scripts that
you have used.
1.5 References
Refer to the following Avago documentation for product-specific information. Contact your FAE to obtain
documentation.
LSI Scrutiny Tool User Guide
LSI SAS-3 Architecture Guide
StorCLI Reference Manual
MegaRAID SAS Device Driver Installation User Guide
MegaRAID SAS Software User’s Guide
Linux Device Mapping in LSI Expander-Designed Backplanes SEN
Consider the following figure an as example to explain the possible bottlenecks in a storage system.The DDR block
and DDR path does not apply for IOC products.
$RIVES
0#)E
#05 #05
NOTE The storage topology, how the storage components connect can
affect performance. For easy explanation, only a controller > expander
> drives topology is chosen here. A storage topology can be built
many different ways and performance can differ between different
topologies; see Section 3.3, Storage Topology for more information.
Performance measurement can occur for a specific device or a specific topology.
When you measure device performance, overprovision all other interfaces and devices so the device is the only
bottleneck and you measure the maximum device capabilities.
When you measure a specific topology performance, keep all devices and interfaces at the maximum capability
so the measurement exposes any device or interface that performs lower than others.
2.2 Limitations
Interface Limitations
BW (Uni-Directional) MB/s
Technology Phys
Theoretical Practical
PCIe x1 500 400
(5 Gb/s) x4 2000 1600
x8 4000 3200
BW (Uni-Directional) MB/s
Technology Phys
Theoretical Practical
SAS x1 600 550
(6 Gb/s) x4 2400 2200
x8 4800 4400
SATA x1 300 260 (3 Gb/s)
(6 Gb/s) 520 (6 Gb/s)
x4 1200 1040 (3 Gb/s)
2080 (6 Gb/s)
x8 2400 2080 (3 Gb/s)
4160 (6 Gb/s)
BW (Uni-Directional) MB/s
Technology Phys
Theoretical Practical
PCIe x1 800 790
(8 Gb/s) x4 3200 3200
x8 6400 6400
SAS x1 1200 1100
(12 Gb/s) x4 4800 4400
x8 9600 8800
SATA x1 600 260 (3 Gb/s)
(12 Gb/s) 490 (6 Gb/s)
x4 2400 820 (3 Gb/s)
1540 (6 Gb/s)
x8 4800 1640 (3 Gb/s)
3080 (6 Gb/s)
The previous tables help you choose a right storage topology for your measurement. For example, to measure the
maximum IOPs of a controller expected to give 500,000 IOPs maximum, eight direct-attached SAS HDDs that give
100,000 IOPs maximum each might be sufficient because 8 x 100,000 = 800,000 IOPs > 500,000 IOPs. However, the
same topology is not sufficient to measure the maximum MBPS of the same controller if the controller is expected to
exceed 4000 MBPS and the drives are expected to give only 200 MBPS maximum each. The drives limit the
performance at (8 x 200 =) 1600 MBPS, so the eight direct-attached SAS HDD topology is not suited to measure
greater than the 4000 MBPS limit of the controller.
The following table lists the maximum performance for Avago controllers.
The maximum throughput is the minimum of the maximum performances of all the interfaces and devices. As a
result, bottlenecks might be due to:
Limitation of any interfaces, devices, or topology
Number of devices and links
Computational overheads, and so on
For example, while finding the maximum IOPs of the system, usually the processing capabilities of the storage
controller and host CPU cause the bottleneck. But if the number of drives are lower to meet the maximum IOPs of the
controller the number of drives becomes the bottleneck.
While finding the maximum MBPS of the system, factors such as controller DDR interface, SAS, PCIe interface, host
CPU, or number of drives can cause the bottleneck. The factor with the lowest maximum MBPS for a specific workload
becomes the bottleneck.
Knowing the bottleneck or limitation of your system configuration helps you understand the expected maximum
performance of your system. The following examples discuss different bottlenecks related to storage controllers
and performance.
$$2 AT
'BS 3!3
-(Z %XPANDER
#ONTROLLER
'BS 3!3
3!3 "OTTLENECK 'BS 3!3 CONTROLLER
'BS 0#)E WITHOUT DRIVE LIMITATION RESULTS IN 'BS
'"S 0RACTICAL SPEED LIMIT
(OST #HIPSET
#05 #05
From the inherent nature of the SAS and PCIe interface used, the controller’s SAS connection becomes the
performance bottleneck for the case that follows.
Maximum random MB/s = Minimum (PCIe 8 Gb/s, SAS 6Gb/s, 40x drives)
= Minimum (6.4 GB/s, 4.4 GB/s, 40 x 120 MB/s)
= 4.4 GB/s (SAS bottleneck)
$$2 AT
'BS 3!3
-(Z %XPANDER
#ONTROLLER
'BS 3!3
0#)E "OTTLENECK ,ARGE )/S AND
'BS 0#)E CONTROLLER INTERFACES RUNNING MAXIMUM
'"S 0RACTICAL WIDTH AND SPEED WITHOUT DRIVE LIMITATIONS
(OST #HIPSET
#05 #05
Now the drive throughput becomes the bottleneck for Random Read/Random Write. With 6Gb/s SAS, the 40x drives
gave 4.8 GB/s (40 x 120 MB/s):
Maximum Random MB/s = Minimum (PCIe 8 Gb/s, SAS 12Gb/s, 40x drives at 120 MB/s)
= Minimum (6.4 GB/s, 8.8 GB/s, 4.8 GB/s)
= 4.8 GB/s (drive bottleneck)
If the expander is a 12Gb/s expander with Databolt, the expander can extract almost 12 Gb/s performance from
6 Gb/s drives. With DataBolt enabled, the same drives can reach up to 9.6 GB/s (2 x 4.8). Assuming the drives reach
7.2 GB/s for the Random Read/Random Write, the PCIe interface becomes the bottleneck.
Maximum MB/s = Minimum (PCIe 8 Gb/s, SAS 12Gb/s, 40x drives at 6 Gb/s + Databolt)
= Minimum (6.4 GB/s, 8.8 GB/s, 7.2 GB/s)
= 6.4 GB/s (PCIe bottleneck)
2.2.3.3 12Gb/s SAS Controller with PCIe and Drive Bottleneck Example
Compared to Figure 3, the following figure illustrates two cases. One with 40 drives and another with 24 drives.
$$2 AT
'BS 3!3
-(Z %XPANDER
#ONTROLLER
'BS 3!3
'BS 0#)E 0#)E "OTTLENECK 0#)E 'BS X WITHOUT WITHOUT DRIVE LIMITATIONS
'"S 0RACTICAL $ISK "OTTLENECK ,IMIT OF SPECIFIED DRIVES
(OST #HIPSET
#05 #05
The 40-drive case behaves similarly to the previous example, where the bottleneck is the PCIe interface because the
drives can reach 7.2 GB/s sequential reads/writes.
For the 24-drive case, the drive performance falls to 4.3 GB/s so the number of drives causes the bottleneck:
Maximum sequential MB/s = Minimum (PCIe 8 Gb/s, SAS 12Gb/s, 24x drives)
= Minimum (6.4 GB/s, 8.8 GB/s, 4.3 GB/s)
= 4.3 GB/s (number-of-drives bottleneck)
$$2 AT
'BS 3!3
-(Z %XPANDER
#ONTROLLER
'BS 3!3
3!3 "OTTLENECK #ONTROLLER LIMIT OF
+ )/0S X
+"