Check out the new USENIX Web site. next up previous
Next: Experimental Results Up: Semi-preemptible IO Previous: The Method


Disk Profiling

Figure 5: Sequential read throughput vs. chunk size.
\begin{figure}\begin{center}
\begin{tabular}{l}
\epsfxsize =190pt
\epsfysize =13...
...{fig_pidtv2-read-thr.eps}}
\end{tabular}\end{center}\vspace{-0.2in}
\end{figure}

As mentioned in the beginning of this section, Semi-preemptible IO greatly relies on disk profiling to obtain accurate disk parameters. The disk profiler obtains the following required disk parameters:

The extraction of these disk parameters is described in [7].

Figure 6: Sequential write throughput vs. chunk size.
\begin{figure}\begin{center}
\begin{tabular}{l}
\epsfxsize =190pt
\epsfysize =13...
...fig_pidtv2-write-thr.eps}}
\end{tabular}\end{center}\vspace{-0.2in}
\end{figure}

As regards chunking, the disk profiler provides the optimal range for the chunk size. Figure 5 depicts the effect of chunk size on the read throughput performance for one SCSI and one IDE disk drive. Figure 6 shows the same for the write case. Clearly, the optimal range for the chunk size (between the points $ a$ and $ b$ illustrated previously in Figure 3) can be automatically extracted from these figures. The disk profiler implementation was successful in extracting the optimal chunk size for several SCSI and IDE disk drives with which we experimented. For those who might also be interested in the CPU overhead for performing chunking, we present the CPU utilization when transferring a large data segment from the disk, using different chunk sizes in Figure 7 for an IDE disk. The CPU utilization decreases rapidly with an increase in the chunk size. Beyond a chunk size of $ 50$ kB, the CPU utilization remains relatively constant. This figure shows that chunking, using even small chunk size ($ 50$ kB), is feasible for IDE disk without incurring any significant CPU overhead. For SCSI disks, the CPU overhead of chunking is even less than that for IDE disks, since the bulk of the processing is done by the SCSI controller.

To perform JIT-seek, the system needs an accurate estimate of the seek delay between two disk blocks. The disk profiler provides the seek curve as well as the variations in seek time. The seek time curve (and variations in seek time) for a SCSI disk obtained by the disk profiler is presented in Figure 8. The disk profiler also obtains the required parameters for rotational delay prediction between accessing two disk blocks in succession with near-microsecond-level precision. However, the variations in seek time can be of the order of one millisecond, which restricts the possible accuracy of prediction. Finally, to perform JIT-seek, the system combines seek time and rotational delay prediction to predict $ T_{rot}$. We have conducted more detailed study on $ T_{rot}$ prediction in [7].

Figure 7: CPU utilization vs. chunk size for IDE WD400BB.
\begin{figure}\vspace{.2in}
\epsfxsize =190pt
\epsfysize =130pt
\centerline{\epsffile{fig_pidtv2-write-cpu.eps}}\end{figure}

Figure 8: Seek curve for SCSI ST318437LW.
\begin{figure}\epsfxsize =190pt
\epsfysize =130pt
\centerline{\epsffile{fig_seek.eps}}\end{figure}


next up previous
Next: Experimental Results Up: Semi-preemptible IO Previous: The Method
Zoran Dimitrijevic 2003-01-06