Investigating filesystems and the block layer
Given that storage is a lot more sluggish than other components in a system, it is no surprise that, very often, performance issues are related to I/O. However, simply categorizing a performance issue as I/O-based is an oversimplification.
Filesystems are the first point of contact for an application and are considered to be sandwiched between the application and physical storage. Traditionally, physical storage has always been the center of attention while doing any performance analysis. Most tools focus on the utilization, throughput, and latency of the physical drives, while leaving out the other aspects of an I/O request. Scrutinizing storage usually begins and ends with physical disks, making filesystems analysis an oversight.
Similarly, the events happening in the block layer also tend to slip under the radar when it comes to performance analysis. The tools that we discussed in Chapter 9 usually provide averaged-out values over...