Traditionally, I/O performance tuning has fallen behind less glamorous topics. This bias can be seen to the present day in the personal computer market: every computer manufacturer will advertise the clock rate of their CPUs, but it's quite a bit rarer that they announce the rotational speed or internal transfer rate of their hard drives . Often our initial thoughts of performance are ones of processor power or memory consumption, not of transfer rates to and from disk platters. It's unfortunate, because the stakes in I/O tuning are exceedingly high; since disks are about six orders of magnitude slower than physical memory, avoiding trips to disk and making those necessary trips as fast as possible can have a huge impact on application performance. Exacerbating the importance of I/O tuning is the fact that the most dramatic improvements in storage technology have been oriented at increasing the amount of data we can store, rather than how fast we can access it; rotational speed has gone up by about three times in the last ten years , but storage capacities have gone up by a factor of at least one hundred. In this chapter, I describe this often neglected area of performance analysis and tuning. I focus initially on basic concepts surrounding disk drives: physical layout, access patterns, and the factors that govern disk performance in various situations. I also talk about the interfaces by which we communicate with the disks, such as IDE and SCSI, some common disk performance problems, the impact of various types of filesystems on performance, and some tools for disk performance monitoring and analysis. |