Operating systems include many heuristic algorithms designed to improve overall storage performance and throughput. Because such heuristics cannot work well for all conditions and workloads, system designers resorted to exposing numerous tunable parameters to users -- thus burdening users with continually optimizing their own storage systems and applications. Storage systems are usually responsible for most latency in I/O-heavy applications, so even a small latency improvement can be significant. Machine learning (ML) techniques promise to learn patterns, generalize from them, and enable optimal solutions that adapt to changing workloads. We propose that ML solutions become a first-class component in OSs and replace manual heuristics to optimize storage systems dynamically. In this paper, we describe our proposed ML architecture, called KML. We developed a prototype KML architecture and applied it to two case studies: optimizing readahead and NFS read-size values. Our experiments show that KML consumes less than 4KB of dynamic kernel memory, has a CPU overhead smaller than 0.2%, and yet can learn patterns and improve I/O throughput by as much as 2.3x and 15x for two case studies -- even for complex, never-seen-before, concurrently running mixed workloads on different storage devices.
翻译:操作系统包括许多旨在改进总体储存性能和吞吐量的超光速算法。由于这种超光速算法无法在所有条件和工作量中都很好地发挥作用,系统设计者向用户披露了众多的金枪鱼参数,从而给用户带来负担,不断优化自己的储存系统和应用。存储系统通常负责I/O重度应用中的最长期性,因此即使是少量的潜伏性改进也会很重要。机器学习(ML)技术有望学习模式,从中加以概括,并促成适应不断变化的工作量的最佳解决方案。我们建议ML解决方案成为OS中的一流组件,并取代人工超光速系统,以动态方式优化储存系统。我们在此文件中描述我们拟议的ML结构,称为KML。我们开发了一个KL原型结构,并将其应用于两个案例研究:优化读头值和NFS读大小值。我们的实验显示,KML消耗的动态内内存量不到4KB,其CPU的间接费用小于0.2%,并且甚至可以学习模式并改进I/O过量,作为2.3x的混合存储器,用于两个案例研究。