# HMB-I/O: Fast Track for Handling Urgent I/Os in Nonvolatile Memory Express Solid-State Drives
## 5 Performance Evaluation
\begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Type** & **Workload** & **Collection Period (min)** & **Data Size (MB)** & **I/O Rate (#req/s)** & **Ratio of Reads (\%)** \\ \hline App. & Movie & 16.6 & 127.4 & 4.8 & 94.6 \\ \hline App. & CameraVideo & 57.0 & 2229.7 & 2.7 & 70.5 \\ \hline Sys. func. & Booting & 0.7 & 959.2 & 460.4 & 66.9 \\ \hline App. & Music & 63.4 & 234.4 & 1.8 & 47.2 \\ \hline App. & Email & 12.3 & 57.9 & 3.9 & 29.6 \\ \hline App. & Facebook & 18.5 & 95.2 & 3.5 & 25.6 \\ \hline App. & WebBrowsing & 81.7 & 93.7 & 0.8 & 19.3 \\ \hline App. & AngryBird & 33.7 & 92.5 & 1.6 & 15.5 \\ \hline App. & GoogleMaps & 28.7 & 193.2 & 7.3 & 13.2 \\ \hline App. & Twitter & 14.3 & 183.1 & 16.1 & 11.5 \\ \hline App. & Amazon & 13.7 & 65.8 & 3.9 & 37.0 \\ \hline Sys. func. & Idle & 489.4 & 120.3 & 0.2 & 11.1 \\ \hline App. & Messaging & 9.8 & 62.2 & 9.7 & 2.7 \\ \hline App. & Youtube & 78.2 & 28.0 & 0.4 & 2.5 \\ \hline App. & Installing & 16.3 & 1615.1 & 18.4 & 1.7 \\ \hline App. & Radio & 74.2 & 113.3 & 1.3 & 1.3 \\ \hline Sys. func. & CallOut & 61.7 & 26.7 & 0.4 & 1.1 \\ \hline Sys. func. & CallIn & 62.8 & 26.7 & 0.4 & 0.1 \\ \hline \hline \end{tabular}
\end{table} 
Table 5: Workloads collected from Nexus 5 smartphone (adapted from [29]). they are processed with the HMB I/O, but they are from 22.31 to 96.98 ms if they are processed via the original block I/O layer. In the same experiment used to obtain the data in Figure 7, we analyzed the results in terms of tail latencies, which are often more important than average latencies. Figure 8 depicts the relative performance improvement when using HMB I/O compared to the latency when Rio and microbenchmark are executed simultaneously without using the HMB I/O. As shown, by servicing the urgent workloads with HMB I/O, the tail latencies were reduced to 14%-39%. In addition, there are no significant differences from the idle situation in which only the microbenchmark was executed, about 1.4 times on average. Figure 9 shows the individual I/O latencies of the workloads when Rio was executed together. Only three sets of results are shown here (those for the Movie, Amazon, and Twitter workloads) because they have high, middle, and low performance improvements in terms of average latency, respectively. As expected, the I/O latencies are very long when differentiated service is not provided, at 600-1200 ms in many cases. This level cannot be ignored in terms of user satisfaction. On the other hand, the latencies are very short when HMB I/O is used to process the workloads urgently, again demonstrating the effectiveness of our scheme. Figure 8: Normalized tail latency of urgent I/O requests in the HMB I/O scheme. Figure 7: Average latency of urgent I/O requests. We also analyzed the I/O latency as a function of the amount of I/O on the SSD, namely, the number of I/O requests issued by fio. To this end, we set the number of I/Os issued from eight to 16,384 and used the Amazon workload to measure the I/O latencies because the performance improvement of this workload was the middle among the workloads we tested. As can be seen in Figure 10, when HMB I/O is not used, the average latency gradually increases as the I/O load increases. If the Amazon workload is processed by HMB I/O, this situation is significantly improved, and the average latency is constantly about 15 ms regardless of the number of I/Os issued by fio. Since our scheme gives high priority to I/O requests that should be processed urgently even if there are other pending I/O requests in the submission queues, the processing of relatively less urgent I/O requests is inevitably delayed. Figure 11 shows the average fio latency as a function of the number of I/O issued. As the I/O load on the SSD increases, the fio latency also increases regardless of the  
Figure 10: Average I/O latency of Amazon workload. Figure 9: I/O latencies of some workloads. (**a**) Movie; (**b**) Amazon; (**c**) Twitter. usage of HMB I/O.