Avago 6Gb/s SAS and 12Gb/s SAS Performance
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.
Corporate Headquarters Email Website
San Jose, CA
[email protected] www.lsi.com
800-372-2447
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.
Avago Technologies Confidential
-4-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Table of Contents
October 2014
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
Chapter 2: Calculate Expected Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Bottlenecks and Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Interface Connection Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 Device Hardware Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Bottleneck Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3.1 6Gb/s SAS Controller Bottleneck Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.3.2 12Gb/s SAS Controller PCIe Bottleneck Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.3.3 12Gb/s SAS Controller with PCIe and Drive Bottleneck Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.3.4 12Gb/s SAS Controller Small Sequential IOPs Bottleneck Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3.5 12Gb/s SAS Controller Throughput Bottleneck Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Queue Depth and Expected Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Chapter 3: Build Your Test Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1 Host System Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Processor Architecture and Core Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.3 PCIe Slot Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.4 Non Uniform Memory Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.5 BIOS Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Storage Components and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1 Initiators and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.1.1 Initiator Features that Affect Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2 Expanders and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2.1 Expanders and Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2.2 DataBolt Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.3 Storage Drives and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.4 Target-Mode Controllers and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.5 SSD Preconditioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.5.1 SNIA SSD Preconditioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.5.2 Alternative SSD Preconditioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Storage Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 Direct Attached Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.2 Expander Attached Topology - Single . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.3 Expander Attached Topology - Cascade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.4 Expander Attached Topology - Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.5 Multipath Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.6 Topology Guidelines for Better Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Chapter 4: Configure Your Test Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1 Operating System Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.1 Windows Operating System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.1.1 Windows Operating System Hotfixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.1.2 MSI-X Interrupt Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.1.3 Process Affinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.1.4 Driver Version and Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.1.1.5 Disk Write Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Avago Technologies Confidential
-3-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Table of Contents
October 2014
4.1.2 Linux Operating System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2.1 Linux Kernel Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2.2 Linux Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2.3 MSI-X Interrupt Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.2.4 I/O Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.2.5 Block Layer I/O Scheduler Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.2.6 SCSI Queue Depth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.2.7 Nomerges Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.2.8 Rotational Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.2.9 Add Random Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.2.10 Linux Write Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2 Volume Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.1 Volume Configurations and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.2 Volume Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3 Strip Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.4 Cache Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.5 Disk Cache Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.6 I/O Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.7 Consistency and Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.8 Background Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.9 MegaRAID FastPath Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.10 Guidelines on Volume Configurations for Better Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.3 Software Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 Linux Performance Monitoring Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.1.1 sar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.1.2 iostat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3.1.3 blktrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.1.4 blkparse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3.2 Windows XPerf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3.3 Windows Performance Monitor (Perfmon) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Chapter 5: Benchmark Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.1 Benchmarking Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2 Iometer for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2.1 Run Iometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2.2 Iometer Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2.3 Interpret Iometer Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.4 Iometer References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 Vdbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3.1 Install Vdbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3.2 Run Vdbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.3 Sample Vdbench Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.4 Interpret Vdbench Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.4 Jetstress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.4.1 Install Jetstress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4.2 Create your Jetstress Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4.2.1 Select Capacity and Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4.2.2 Select Test Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4.2.3 Define Test Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4.2.4 Configure Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4.2.5 Select Database Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4.3 Start the Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4.3.1 Characterize the Jetstress Workload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4.4 Interpret Jetstress Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.4.4.1 Transactional I/O Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.4.4.2 Background Database Maintenance I/O Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.5 fio for Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.5.1 Get Started with fio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Avago Technologies Confidential
-4-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Table of Contents
October 2014
5.5.2 fio Performance-Related Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.5.3 Interpret fio Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.6 Verify Benchmark Results for Validity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Chapter 6: Compare Measured Results with Expected Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.1 Performance Result Examples for MegaRAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.1.1 Eight Drive Direct Attached Example Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.1.2 Twenty-four Drive Expander Attached Example Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.3 Forty Drive Expander Attached Example Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2 Performance Results Examples for IT Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.1 Eight Drive Direct Attached Example Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.2 Twenty-four Drive Expander Attached Example Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.3 Forty Drive Expander Attached Example Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Chapter 7: Troubleshoot Performance Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Appendix A: Performance Testing Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Version 1.0, October 2014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Advance, Version 0.1, March 2014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Avago Technologies Confidential
-5-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 1: Introduction
October 2014 Overview
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.
Avago Technologies Confidential
-6-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 1: Introduction
October 2014 Performance Metrics
Chapter 6, Compare Measured Results with Expected Results
Helps you analyze the results and compare your results with the expected results. This chapter provides
example results from Avago standard performance runs to gauge your results.
Chapter 7, Troubleshoot Performance Issues
Reviews questions that you might ask or additional tests that you might run in the case of unexpected results.
By doing so, this chapter takes you through different debugging steps to isolate and root cause the issue
quicker.
1.2 Performance Metrics
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
Avago Technologies Confidential
-7-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 1: Introduction
October 2014 Performance Measurement Characteristics
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.
1.3 Performance Measurement Characteristics
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.
1.4 Performance Testing Overview
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.
Avago Technologies Confidential
-8-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 1: Introduction
October 2014 Performance Testing Overview
General Guidelines for Better Performance Measurements
Use the host system with the latest high performance processors and chip sets.
Use latest motherboards that allow use of more than one CPU socket, then populate all the CPUs if possible.
Use the latest system BIOS version for the motherboard
Tune the system BIOS settings for performance rather than for power saving mode.
Use an up-to-date operating system and implement any necessary patches or updates that might
affect performance.
Set the interface speeds (such as PCI Express® (PCIe®) and SAS) to their maximum so the controller is the only
bottleneck. For example, to measure a PCIe Generation 3 (8 Gb/s) controller performance, you do not want to
configure your motherboard PCIe slot to PCIe Generation 2 (5 Gb/s) speed.
Make sure sufficient drives are in place to exercise the maximum controller performance. For example, to measure
the maximum bandwidth of a SAS controller, you might need more than 20 hard drives. In such cases, using only
the direct attached drives is bottlenecked by the drives.
Make sure the cables and connectors are not prone to signal integrity issues. For example, use the appropriate
cable length to connect the controller and expander. Use cables and connectors that meet the specification
standards such SAS, SATA, and PCIe of your storage devices.
Make sure sufficient cooling is in place, so temperature variations do not affect your measurements.
Choose the benchmarking tool or system monitoring tool that properly measures the metric of your interest. For
example, if latency is your prime metric, the VDbench tool might be better than the v1.1.0 IOmeter tool.
Make sure performance-related features of other devices are in a known state. For example,
— A 12Gb/s SAS expander might enable a buffering feature that is advantageous for 6 Gb/s drives.
— Write cache on hard drives impact the performance
Update all devices in your systems with the latest firmware and software, such as BIOS, driver, tools, and utilities.
Make sure to run workloads that represent your real-life scenarios.
Overlooking any of the basic guidelines can result in an unreliable or inconsistent performance measurement. The
following table lists such problems and their potential causes.
Problem Potential Causes
Performance Insufficient disks
measurement lower Link not running up to expected speed
than expected
CPU utilization at 100 %
Disk sees random I/O when sequential I/O is intended
Unexpected file system or operating system influence
Some component failed and generated errors
Incorrect performance expectation
One or more disks in the virtual drive has lower performance than the other drives (that is, drive
becomes defective, has many reallocated sectors or media errors, and so on).
Background tasks running, such as a consistency check or patrol read.
Performance Using more disks than expected
measurement higher Disk sees sequential I/O when random I/O is intended
than expected
I/Os are serviced out of cache instead of reaching the disks
Incorrect performance expectation
Unstable performance System processes starting and stopping
measurement results Intermittent component errors
Problems with interrupt and process affinity
Use of nonpreconditioned SSD
Avago Technologies Confidential
-9-
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 1: Introduction
October 2014 References
Problem Potential Causes
Results not repeatable System or other processes starting and stopping
Intermittent errors
Inconsistent test process
RAID background operations starting and stopping
Use of nonpreconditioned SSD
Too-short test time
Thermal problems
Insensitivity to Parameter remained unchanged
expected parameter Incorrect expectation
changes
I/O not going to the expected target devices
Runtime hardware or Thermal problems
software errors Use of uninitialized volumes
Illegal topology
Use of broken or inappropriate cables and drive enclosures
Insufficient drive power
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
Avago Technologies Confidential
- 10 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 1: Introduction
October 2014 References
12Gb/s SAS Controllers
— LSISAS3xxx PCI Express to 12Gb/s SAS Controller Datasheet
— LSISAS3xxx PCI Express to 12Gb/s SAS Controller Configuration Programming Guide
— LSISAS3108 PCI Express to 12Gb/s SAS ROC Controller Register Programming Guide
— LSISAS3108 PCI Express to 12Gb/s SAS/SATA ROC Controller SDK Programming Guide
— LSISAS3xxx Controller Reference Schematic
6Gb/s SAS Controllers
— LSISAS2xxx PCI Express to 6Gb/s SAS/SATA Controller Design Considerations SEN
— LSISAS2xxx PCI Express to 6Gb/s SAS/SATA ROC Controller Reference Manual
— LSISAS2208 PCI Express to 6Gb/s SAS/SATA ROC Controller Programming Guide
— LSISAS2208 PCI Express to 6Gb/s SAS/SATA ROC Controller SDK Programming Guide
12Gb/s SAS Expanders
— LSISAS3xxx PCI Express to 12Gb/s SAS Controller Datasheet
— LSISAS3xxx PCI Express to 12Gb/s SAS Controller Configuration Programming Guide
— LSISAS3xXX 12Gb/s SAS/SATA Expander Family Register Reference Manual
— LSISAS3xXX-R 12Gb/s SAS/SATA Expander Family Register Reference Manual
— LSI 12Gb/s SAS/SATA Expander Software Development Kit Programming Guide
— 12Gb/s SAS/SATA Expander Firmware Configuration Programming Guide
— LSI 12Gb/s Expander Tools (Xtools) User Guide
— LSI 12Gb/s Expander Flash (g3Xflash) User Guide
— LSI 12Gb/s Expander Manufacturing Image (g3Xmfg) User Guide
— LSI 12Gb/s Expander Diagnostics Utility (g3Xutil) User Guide
— LSI 12Gb/s Expander IP Configuration Utility (g3Xip) User Guide
— Configuration Page Definition for 12Gb/s SAS/SATA Expander Firmware Application Note
— LSISAS3xXX-R 12Gb/s SAS/SATA Expander Family Register Reference Manual
— LSI 12Gb/s SAS/SATA Expander Software Development Kit Programming Guide
6Gb/s SAS Expanders
— LSISAS2xXX Expander Design Considerations SEN
— LSISAS2xXX Expander Reference Manual
— LSI 6Gb/s SAS/SATA Expander SDK Programming Guide
— LSI Expander Flash Utility (Xflash) User Guide
— LSI Expander Tools (Xtools) User Guide
— Configuration Page Definition for 6Gb/s SAS/SATA Expander Firmware
HBAs
— LSI SAS 9xxx-xx PCI Express to 12Gb/s Serial Attached SCSI (SAS) Host Bus Adapter User Guide
— PCI Express to xGb/s Serial Attached SCSI (SAS) Host Bus Adapters User Guide
— Quick Installation Guide LSI SAS 9xxx-xx PCI Express to 12Gb/s SAS Host Bus Adapter
Avago Technologies Confidential
- 11 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Bottlenecks and Limitations
Chapter 2: Calculate Expected Performance
This chapter explains how to calculate the expected performance of your system. To understand the expected
performance, it is important to understand the bottlenecks and limitations of different devices and interfaces of your
system. This performance guide reviews the bottleneck and limitations related to the following Avago
storage products:
SAS Storage I/O Controllers (IOCs)
— LSISAS2008, LSISAS2308 (6Gb/s SAS)
— LSISAS3004, LSISAS3008 (12Gb/s SAS)
RAID-on-Chip ICs (ROCs)
— LSISAS2108, LSISAS2116, LSISAS2208 (6Gb/s SAS)
— LSISAS3108 (12Gb/s SAS)
Host Bust Adapters (HBAs)
— LSI SAS 92xx (6Gb/s SAS)
— LSI SAS 93xx (12Gb/s SAS)
RAID Controllers
— LSI MegaRAID SAS 6Gb/s RAID (LSI MegaRAID SAS 92xx)
— LSI MegaRAID SAS 12Gb/s RAID (LSI MegaRAID SAS 93xx)
SAS Expanders
— LSISAS2x36, LSISAS2x28, LSISAS2x24, LSISAS2x20 (6Gb/s SAS)
— LSISAS3x48, LSISAS3x40, LSISAS3x36, LSISAS3x36-R, LSISAS3x28-R, LSISAS3x24-R (12Gb/s SAS)
The performance of each product depends on the PCIe interface and SAS speeds, processing power of the product’s
CPU and DMA engines, and I/O routing capabilities of the hardware modules. To measure the product performance
capability, avoid other bottlenecks in the system as much as possible. The maximum system performance is the
minimum of the maximum device or interface performance in the system. After all, any chain is as strong as its
weakest link.
2.1 Bottlenecks and Limitations
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.
Figure 1 Example Storage Configuration
$$2 3!3 $RIVE ,IMITATIONS $RIVES
3!3
$$2 %XPANDER
#ONTROLLER $RIVES
$RIVES
0#)E
#05 #05
$$2
3$2!-S $$2
3$2!-S
Avago Technologies Confidential
- 12 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Bottlenecks and Limitations
For an I/O read or write, the I/O path is as follows:
Operating system or Application > host CPU > PCIe interface > storage controller > SAS > Expander > Drives
The following table lists factors (including, but not limited to) that affect performance at each level of the previous
I/O path.
Table 1 I/O Path Elements that Affect Performance
I/O Path Elements Factors that Affect Performance
Operating system Other applications using host resources
or Application Network loads
Operating system type (Windows, Linux, et al)
Benchmark type (synthetic, application)
Queue depth or number of outstanding I/Os per physical drive
MSI-X interrupt vector support
Host CPU Processor and I/O architecture
CPU speed
Number of CPU Sockets
Number of processor cores per CPU
Hyper-threading
Memory size and speed
NUMA
Host chipset
PCIe interface Link rate (2.5 Gb/s, 5 Gb/s, 8 Gb/s)
Link width
Signal integrity (SI)
Storage controller IOC and RAID
CPU core capability
DMA and Fast Path engines
I/O coalescing
Interrupt coalescing
Controller mode (initiator or target)
RAID Only
DDR memory type, speed, and size
RAID initialization or other background operations (Rebuild, Reconstruction, Patrol Read, Consistency
Check)
RAID volume configurations
Number of drive groups and volumes
Avago Technologies Confidential
- 13 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Limitations
Table 1 I/O Path Elements that Affect Performance (Continued)
I/O Path Elements Factors that Affect Performance
SAS Link rate (3 Gb/s, 6 Gb/s, 12 Gb/s)
Link width
SI
Expander Connection routing and arbitration
DataBolt (end device buffering)
Drives Individual drive performance
Number of drives
Protocol (SAS or SATA)
Media type (HDD or SSD)
Link rate (3 Gb/s, 6 Gb/s, 12 Gb/s)
Write cache
Preconditioning (SSD only)
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
This section presents maximum interface and drive limitations, including:
Maximum theoretical and practical bottlenecks of SAS/SATA and PCIe interfaces in a storage topology
Expected maximum performance for different drive types (SAS/SATA, SSD/HDD)
Hardware limitations of storage controllers
2.2.1 Interface Connection Limitations
Interface Limitations
Table 2 Generation 2 Interface Connection Limitations
BW (Uni-Directional) MB/s
Technology Phys
Theoretical Practical
PCIe x1 500 400
(5 Gb/s) x4 2000 1600
x8 4000 3200
Avago Technologies Confidential
- 14 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Limitations
Table 2 Generation 2 Interface Connection Limitations (Continued)
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)
Table 3 Generation 3 Interface Connection Limitations
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)
Disk Drive Limitations
Table 4 Disk Drive Interface Limitations
Generation Drive Type Disk K IOPs Sustained MB/s
Generation 2 SAS 2.5’ 40 to 250 80 to 210
(6 Gb/s)
SAS3.5’ 40 to 250 90 to 220
SATA 2.5’ 10 to 70 40 to 120
SATA 3.5’ 10 to 70 80 to 150
Generation 3 SAS HDD 40 to 250 100 to 220
(12 Gb/s)
SATA HDD 10 to 80 50 to 150
SAS SSD 10 to 120 550
SATA SSD 10 to 100 550
Avago Technologies Confidential
- 15 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Limitations
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.
2.2.2 Device Hardware Limitations
The following table lists the maximum performance for Avago controllers.
Table 5 Device Hardware Maximum Performance
SAS Maximum Read SAS Maximum Write
Generation Controller SATA Maximum IOPs SAS Maximum IOPs
MBiPS MBiPS
6 Gb/s SAS, LSISAS2008 245,000 at 0.5 KB 350.000 at 0.5 KB 3100 MBiPS 2700 MBiPS
5GT/s PCIe
LSISAS2108 256,000 at 0.5 KB [4K SR 308,000 at 0.5 KB [4 K SR 1721 MBiPs 934 MBiPS
RAID0 SATA 3Gb/s SSD] RAID0 6Gb/s SAS SSD] [RAID0 6Gb/s SAS SSD] [RAID0 6Gb/s SAS SSD]
6 Gb/s SAS, LSISAS2308 460,000 at 4 KB 640,000 at 4 KB 4320 MBiPS 4300 MBiPS
8GT/s PCIe
LSISAS2208 502,000 at 4 KB [4K SR 521,000 at 4 KB [4K SR,RAID0] 4315 MBiPS 4281 MBiPS
RAID0]
12 Gb/s SAS, LSISAS3008 683,000 at 4 KB 1.45 Million at 4 KB [4 K RR] 5930 MBiPS 6590 MBiPS
8GT/s PCIe
LSISAS3108 653,000 at 4 KB 1.43 Million at 4 KB [4 K RR] 5930 MBiPS 6590 MBiPS
NOTE Do not expect RAID performance to equal JBOD performance. RAID
operations have additional I/O overheads that reduce
maximum capability.
2.2.3 Bottleneck Examples
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.
Avago Technologies Confidential
- 16 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Limitations
2.2.3.1 6Gb/s SAS Controller Bottleneck Example
The following figure shows the SAS controllers that use 8 Gb/s PCIe interface and 6Gb/s SAS. This setup uses a x8 link
to an expander with 40 drives. The drives are 6Gb/s SAS drives and each drive is capable of 120 MB/s and
460 IOPs maximum for Random I/Os.
Figure 2 6Gb/s SAS Controllers, Revision C1 and Later
-"S$RIVE - 2227
+ )/0S 0RACTICAL )/0S$RIVE + 2227
'BS 3!3 'BS 3EAGATE + n !PPROX
'"S 0EAK '"S 0RACTICAL '"S OR
+ )/0S
$$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
'"S $$2
3$2!-S '"S $$2
3$2!-S
BYTE PRIMARY DATA BUS
BYTE PRIMARY DATA BUS
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)
Avago Technologies Confidential
- 17 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Limitations
2.2.3.2 12Gb/s SAS Controller PCIe Bottleneck Example
Compared to Figure 2, 6Gb/s SAS Controllers, Revision C1 and Later, the following figure uses a 12Gb/s SAS controller
with 12Gb/s SAS instead of the 6Gb/s SAS.
Figure 3 12Gb/s SAS Controllers with PCIe Bottleneck
-"S$RIVE
- 2227
- )/0S 0RACTICAL )/0S$RIVE
+ 2227
'BS 3!3 'BS 3EAGATE + n !PPROX
'"S 0EAK '"S 0RACTICAL '"S OR
+ )/0S
$$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
'"S $$2
3$2!-S '"S $$2
3$2!-S
BYTE PRIMARY DATA BUS
BYTE PRIMARY DATA BUS
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)
Avago Technologies Confidential
- 18 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Limitations
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.
Figure 4 12Gb/s SAS Controller with PCIe and Drive Bottleneck
- )/0S 0RACTICAL -"S$RIVE - 2227
'BS 3!3 'BS 3EAGATE + n !PPROX '"S OR
+ )/0S
'"S 0EAK '"S 0RACTICAL 'BS 3EAGATE + n !PPROX '"S OR
+ )/0S
$$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
'"S $$2
3$2!-S '"S $$2
3$2!-S
BYTE PRIMARY DATA BUS
BYTE PRIMARY DATA BUS
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)
Avago Technologies Confidential
- 19 -
Avago 6Gb/s SAS and 12Gb/s SAS Performance Tuning Guide Chapter 2: Calculate Expected Performance
October 2014 Limitations
2.2.3.4 12Gb/s SAS Controller Small Sequential IOPs Bottleneck Example
The following figure shows the SAS link width reduced to x4 instead of x8, as in earlier examples.
Figure 5 IOPs Small Sequential Random Write
+ )/0S 0RACTICAL 'BS 3EAGATE + 3732
+ )/0S
'BS 3!3 !PPROX
+ )/0S 37 OR -"S 32 PER DRIVE
'"S 0EAK '"S 0RACTICAL
- 37 )/0S OR '"S 32
$$2 AT
'BS 3!3
-(Z %XPANDER
#ONTROLLER
'BS 3!3
3!3 "OTTLENECK #ONTROLLER LIMIT OF
+ )/0S X
+"