Physical I/O Characterization: Pablo Physical I/O Tracing Facility

The Pablo Physical I/O Tracing Facility is a program that can be used to reveal the correlation between application I/O requests, which are handled via the operating system, and physical I/O operations. This is significant because physical I/O patterns are strongly affected by data striping mechanisms, file system policies, and disk hardware attributes. Understanding how the operating system translates application I/O requests into physical disk operations can aid in optimizing file policies and data distributions for higher performance. An awareness of the distributions of trace data quantifying disk I/O performance can enable programmers to choose optimal static scheduling algorithms. For example, if trace data for a given application indicates that 90% of all read operations executed experienced a read duration time of less than 1000 microseconds, it is reasonable to assume that efforts to optimize those I/O operations requiring lower read duration times will benefit overall application performance more than efforts to optimize operations calling for longer read duration times. Trace data also can be used in real-time to dynamically adjust scheduling methods, optimizing application performance on the fly.

In contrast to other Pablo libraries, which are invoked at the user application level, the Pablo Physical I/O Tracing Facility is employed using a patch to the Linux OS kernel.  This patch is exactly the same as the standard Linux kernel except it has been augmented with instrumentation software, attached before and after I/O handling routines, to capture and record internal data. So, rather than using a standard version of Linux, users of the Pablo Physical I/O Tracing Facility employ a patched version of Linux to run their source code and thereby generate trace data profiling disk activity. As the application executes, the performance data captured is recorded in a histogram.  Then performance analysts can use this information to profile and analyze the correlation between application I/O requests and physical I/O operations in an effort to understand where the OS's I/O subsystem efficiency could be improved.

An understanding of the patterns through which I/O requests are filled clarifies the optimization strategies best suited to improving the performance of such applications. Tracing the physical behavior of disk drives, as they are being used to support distributed and parallel applications, yields data that can be analyzed to reveal correlations between application I/O requests and the physical activity undertaken by disk drives during I/O operations.