Tuning the Storage Subsystem
Decisions about how to design or configure storage hardware and software should be centered on what kind of performance is required from the I/O subsystem. This depends on the type of application, supported workload characteristics, service level agreements (SLA), and so forth. However, due to factors such as cost, reliability, availability, power, and ease of use, performance is often neglected and does not meet expectations. Trade-offs are often made between cost and performance, ease-of-use and performance, and consolidation and performance. Trade-offs at the cost of performance are made in all tiers of the storage layer (not to mention in other areas of the infrastructure, such as network and processor speeds). File-cache management, file-system architecture, and volume management translate application calls into individual storage access requests. These requests traverse the storage driver stack and generate streams of commands that are presented to the disk subsystem. The sequence, type, and number of calls and the subsequent translation can improve or degrade overall performance of the I/O subsystem.