next up previous
Next: End-to-End Performance Results Up: Kernel Transformation Performance Previous: Kernel Transformation Performance

   
Micro Performance Results

The MonA file system incurs three overheads not found in a conventional file system. The open, read, and write system calls are more expensive due to extra costs building and maintaining transformations.

The following tests compare the performance of the MonA file system with ext2, the base file system that underlies MonA. As expected, the MonA file system imposes minimal overhead on an unguarded file, a file that does not use transformations. For a guarded file, the system incurs overhead proportional to the number of transformations on that file.


  
Figure 6: Cost of an open system call.
\begin{figure}\begin{center}
\leavevmode
\epsfxsize=3.25in
\epsfysize=1.928in
\epsfbox{open.eps}
\end{center}\end{figure}

Opening a transformation link has overhead due to reading the structure of a transformation network from disk and creating it within the kernel. Alternatively, a user can open a base file and manually push transformations with the ioctl system call. However, the cost of executing a system call dominates the overhead of ioctl and it typically is more expensive to explicitly push transformations at runtime. In both cases, the cost of opening a file is independent of file size and the transformation used.

Figure 6 shows the cost of performing an open call in several situations. An ext2 open clearly is the fastest. Opening an unguarded MonA file is only marginally slower because no transformation networks are created. The next test opens a file guarded by one transformation. It takes approximately twice as long to open as an unguarded file due to reading and creating the transformation network. The final tests open files guarded by five and twenty-five consecutive transformations. The networks for these virtual files are more complicated than previous examples and the file system requires additional time to generate them. However, opening a file with a network of twenty-five transformations takes less than 200 $\mu$s.


  
Figure 7: Cost of a read system call.
\begin{figure}\begin{center}
\leavevmode
\epsfxsize=3.25in
\epsfysize=1.928in
\epsfbox{read_bar.eps}
\end{center}\end{figure}


  
Figure 8: Cost of a write system call.
\begin{figure}\begin{center}
\leavevmode
\epsfxsize=3.25in
\epsfysize=1.928in
\epsfbox{write_bar.eps}
\end{center}\end{figure}

Figures 7 and 8 display the access times versus file size for read and write calls, respectively. These tests focus on the overhead imposed by the transformation framework rather than the time spent executing the body of a transformation. Consequently, the identity transformation (whose output is identical to its input) is compared to ext2. For all cases, the cost of a read or a write increases linearly with the size of the accessed file. An ext2 read or write is approximately 3-5% faster than a guarded read or write performed in the MonA file system.

If the file is unguarded, the MonA file system calls read and write routines that are equivalent to their ext2 counterparts; otherwise, it uses the slightly more expensive MonA read and write routines. However, the 1 KB test demonstrates that an unguarded access is approximately 10% slower than its corresponding guarded access, even though less work is done for the unguarded file. We have investigated this discrepancy but have not yet determined the source of the anomaly.


next up previous
Next: End-to-End Performance Results Up: Kernel Transformation Performance Previous: Kernel Transformation Performance
Richard Kendall
1999-02-01