Chapter 2. Storage system sizing

 

In this chapter, we’ll cover

  • Characterizing I/O load
  • Determining the required number of disks
  • Selecting RAID levels and storage systems
  • Tuning storage area networks
  • Evaluating solid-state disks

Performance tuning SQL Server applications involves finding and addressing performance bottlenecks. While there will always be a bottleneck somewhere, the goal is to reduce the bottlenecks until application performance meets or exceeds the usage requirements, typically defined in a service level agreement (SLA).

Although it’s undeniable that the largest performance gains usually come from good application design, inadequate hardware makes resolving performance problems much more difficult. Poorly designed storage systems account for arguably the largest percentage of hardware-based performance problems for SQL Server solutions, and fixing them is usually more complicated than a simple memory or CPU upgrade. It follows that a well-designed storage system removes the biggest hardware-based performance obstacle, and that storage design should therefore lead the way in sizing servers for use in SQL Server environments.

2.1. Characterizing I/O workload

2.2. Determining the required number of disks and controllers

2.3. Selecting the appropriate RAID level

2.4. Selecting an appropriate storage system

2.5. SQL Server and SANs

2.6. Solid-state disks

2.7. Best practice considerations: storage system sizing