\section{I/O Monitoring}

\begin{frame}
   {I/O Monitoring and Disk Bottlenecks}

   \begin{itemize}

      \item
      Monitoring Input/Output (I/O) activity is essential to
      obtain peak performance
      \item
      Systems can be I/O bound, CPU bound, or memory bound;
      Only measurements can distinguish
      \item
      Three important tools:
      \begin{itemize}
         \item
         \textbf{iostat}
         \item
         \textbf{iotop}
         \item
         \textbf{ionice}
      \end{itemize}
   \end{itemize}


\end{frame}

\cprotect\note{

   Disk performance problems can be strongly coupled to other
   factors, such as insufficient memory or inadequate network
   hardware and tuning. Disentangling can be difficult.

   As a rule, a system can be considered as I/O-bound when the
   CPU is found sitting idle waiting for I/O to complete, or
   the network is waiting to clear buffers.

   However, one can be misled. What appears to be insufficient
   memory can result from too slow I/O; if memory buffers that
   are being used for reading and writing fill up, it may
   appear that memory is the problem, when the real problem is
   that buffers are not filling up or emptying out fast
   enough. Similarly, network transfers may be waiting for I/O
   to complete and cause network throughput to suffer.

   Both real-time monitoring and tracing are necessary tools
   for locating and mitigating disk bottlenecks. However, rare
   or non-repeating problems can make this difficult to
   accomplish.

   There are many relevant variables and I/O tuning is
   complex. We will also consider \textbf{I/O scheduling} later.


}
