I/O Workload Analysis helps to adopt the vertical integration idea to study the workload-aware data organization, cache scheduling, FTL and other optimization strategies at diiferent levels to reduce write amplification and then optimize system read performance.
- Study basic knowledge about I/O flow and I/O stack;
- Background research: collect and read relevant literature to determine the solution of I/O workload analysis;
- Collected I/O workload generated by typical mobile phone applications with blktrace on hikey960;
- Completed the feature selection according to the I/O trace samples and built a model to finish the I/O workloads analysis.
Traditional I/O stack for NVMe SSDs requires many operations to service a single request. Multiple independent layers make up the traditional storage stack, including virtual file system layer, page cache layer, file system layer, generic block layer, and device driver layer. The virtual file system layer serves as an abstract layer on top of a more concrete file system and gives applications access to different types of file systems in a uniform way. The page cache layer employs a transparent cache in memory for pages originating from the secondary storage device, facilitating quick access to the contents of cached pages and thus improving overall performance improvements. The file system layer provides general-purpose or domain-specific implementations to manage and control how data is stored and retrieved. The generic block layer handles the requests for all block devices in the system and mainly provides block I/O management and scheduling. The device driver layer offers a software interface to hardware devices, enabling operating systems to access devices without needing to know their precise details.