Abstract
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 article, 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 4 KB 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.3× and 15× for two case studies—even for complex, never-seen-before, concurrently running mixed workloads on different storage devices.
- [1] . 2016. TensorFlow: A system for large-scale machine learning. In 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2016). 265–283.Google Scholar
- [2] . 2005. Ursa minor: Versatile cluster-based storage. In Proceedings of the FAST ’05 Conference on File and Storage Technologies, 2005. USENIX.Google Scholar
- [3] . 2020. Neural additive models: Interpretable machine learning with neural nets. arXiv:2004.13912. arxiv.org.Google Scholar
- [4] . 2021. A machine learning framework to improve storage system performance. In Proceedings of the 13th ACM Workshop on Hot Topics in Storage (HotStorage’21). ACM, Virtual.
DOI: Google ScholarDigital Library
- [5] . 2020. Re-animator: Versatile high-fidelity storage-system tracing and replaying. In Proceedings of the 13th ACM International Systems and Storage Conference (SYSTOR’20). ACM .Google Scholar
Digital Library
- [6] . 2020. Effectively prefetching remote memory with leap. In 2020 USENIX Annual Technical Conference (USENIX ATC’20). 843–857.Google Scholar
- [7] . 2002. File access prediction with adjustable accuracy. In Conference Proceedings of the IEEE International Performance, Computing, and Communications Conference (Cat. No. 02CH37326). IEEE, 131–140.Google Scholar
Digital Library
- [8] . 2019. Data Storage Research Vision 2025: Report on NSF Visioning Workshop Held May 30–June 1, 2018.
Technical Report . National Science Foundation. https://dl.acm.org/citation.cfm?id=3316807.Google Scholar - [9] . 2012. Workload analysis of a large-scale key-value store. In Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE Joint International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS’12). ACM, New York, NY, 53–64.
DOI: Google ScholarDigital Library
- [10] . 2012. Practical recommendations for gradient-based training of deep architectures. In Neural Networks: Tricks of the Trade. Springer, 437–478.Google Scholar
- [11] . 2001. Random forests. Machine Learning 45, 1 (2001), 5–32.Google Scholar
Digital Library
- [12] . 2020. Characterizing, modeling, and benchmarking RocksDB key-value workloads at Facebook. In 18th USENIX Conference on File and Storage Technologies (FAST’20). 209–223.Google Scholar
Digital Library
- [13] . 2020. Carver: Finding important parameters for storage system tuning. In Proceedings of the 18th USENIX Conference on File and Storage Technologies (FAST’20). USENIX Association.Google Scholar
- [14] . 2017. On the performance variation in modern storage stacks. In Proceedings of the 15th USENIX Conference on File and Storage Technologies (FAST’17). USENIX Association, 329–343.Google Scholar
Digital Library
- [15] . 2018. Towards better understanding of black-box auto-tuning: A comparative analysis for storage systems. In Proceedings of the Annual USENIX Technical Conference. USENIX Association. Dataset at http://download.filesystems.org/auto-tune/ATC-2018-auto-tune-data.sql.gz.Google Scholar
Digital Library
- [16] . 2018. Towards better understanding of black-box auto-tuning: A comparative analysis for storage systems. In USENIX Annual Technical Conference (ATC’18). 893–907.Google Scholar
- [17] . 2020. Learning I/O access patterns to improve prefetching in SSDs. ICML-PKDD (2020).Google Scholar
- [18] . 2019. An RNN based mechanism for file prefetching. In 2019 18th International Symposium on Distributed Computing and Applications for Business Engineering and Science (DCABES’19). IEEE, 13–16.Google Scholar
- [19] . 2020. Machine learning for load balancing in the Linux kernel. In Proceedings of the 11th ACM SIGOPS Asia-Pacific Workshop on Systems (APSys’20). Association for Computing Machinery.
DOI: Google ScholarDigital Library
- [20] . 2017. Data prefetching for large tiered storage systems. In 2017 IEEE International Conference on Data Mining (ICDM’17). 823–828.
DOI: Google ScholarCross Ref
- [21] . 2019. Accurate and efficient 2-bit quantized neural networks. In Proceedings of the 2nd SysML Conference.Google Scholar
- [22] 2020. CNTK. (
Sept. 2020). https://github.com/microsoft/CNTK.Google Scholar - [23] . 2017. Resource central: Understanding and predicting workloads for improved resource management in large cloud platforms. In Proceedings of the 26th Symposium on Operating Systems Principles. 153–167.Google Scholar
Digital Library
- [24] . 2020. From WiscKey to Bourbon: A learned index for log-structured merge trees. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI’20). USENIX Association. https://www.usenix.org/conference/osdi20/presentation/dai.Google Scholar
- [25] . 2018. High-accuracy low-precision training.
arXiv:1803.03383. arxiv.org.Google Scholar - [26] . 2013. Paragon: QoS-aware scheduling for heterogeneous datacenters. ACM SIGPLAN Notices 48, 4 (2013), 77–88.Google Scholar
Digital Library
- [27] . 2014. Quasar: Resource-efficient and QoS-aware cluster management. ACM SIGPLAN Notices 49, 4 (2014), 127–144.Google Scholar
Digital Library
- [28] . 2016. Using the Linux Kernel Tracepoints. (2016). https://www.kernel.org/doc/Documentation/trace/tracepoints.txt.Google Scholar
- [29] . 2007. DiskSeen: Exploiting disk layout and access history to enhance I/O prefetch. In USENIX Annual Technical Conference. 261–274.Google Scholar
- [30] 2020. dlib C++ Library. (
Sept. 2020). http://dlib.net/.Google Scholar - [31] . 2010. Correlation based file prefetching approach for hadoop. In 2010 IEEE 2nd International Conference on Cloud Computing Technology and Science. IEEE, 41–48.Google Scholar
Digital Library
- [32] . 2018. PCC Vivace: Online-learning congestion control. In 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI’18). 343–356.Google Scholar
- [33] 2020. Embedded Learning Library (ELL). (
Jan. 2020). https://microsoft.github.io/ELL/.Google Scholar - [34] . 2019. RocksDB. (
Sept. 2019). https://rocksdb.org/.Google Scholar - [35] . 2008. Quantifying temporal and spatial localities in storage workloads and transformations by data path components. In 2008 IEEE International Symposium on Modeling, Analysis and Simulation of Computers and Telecommunication Systems. IEEE, 1–10.Google Scholar
- [36] . 2020. DeepPrefetcher: A deep learning framework for data prefetching in flash storage devices. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 39, 11 (2020), 3311–3322.Google Scholar
Cross Ref
- [37] . 2015. Deep learning with limited numerical precision. In Proceedings of the 32nd International Conference on Machine Learning (ICML’15). 1737–1746.Google Scholar
- [38] . 2003. Why are neural networks sometimes much more accurate than decision trees: An analysis on a bio-informatics problem. In SMC’03 Conference Proceedings. 2003 IEEE International Conference on Systems, Man and Cybernetics. Conference Theme-System Security and Assurance (Cat. No. 03CH37483), Vol. 3. IEEE, 2851–2856.Google Scholar
Cross Ref
- [39] . 2017. MittOS: Supporting millisecond tail tolerance with fast rejecting SLO-aware OS interface. In Proceedings of the 26th Symposium on Operating Systems Principles. 168–183.Google Scholar
Digital Library
- [40] . 2020. LinnOS: Predictability on unpredictable flash storage. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI’20). USENIX Association. https://www.usenix.org/conference/osdi20/presentation/hao.Google Scholar
- [41] . 1997. Long short-term memory. Neural Computation 9, 8 (1997), 1735–1780.Google Scholar
Digital Library
- [42] . 2010. I/o feature-based file prefetching for multi-applications. In 2010 9th International Conference on Grid and Cloud Computing. IEEE, 213–217.Google Scholar
Digital Library
- [43] . 2017. Quantized neural networks: Training neural networks with low precision weights and activations. The Journal of Machine Learning Research 18, 1 (2017), 6869–6898.Google Scholar
Digital Library
- [44] . 2020. How can I explain this to you? An empirical study of deep neural network explanation methods. In Proceedings of the 34th International Conference on Neural Information Processing Systems (NIPS’20), Curran Associates Inc., Red Hook, NY, 12.Google Scholar
- [45] . 1994. Improving the write performance of an NFS server. In Proceedings of the USENIX Winter 1994 Technical Conference (WTEC’94). USENIX Association, San Francisco, CA, 1. http://dl.acm.org/citation.cfm?id=1267074.1267094.Google Scholar
- [46] . 1996. Reinforcement learning: A survey. Journal of Artificial Intelligence Research (1996), 237–285.Google Scholar
Digital Library
- [47] . 1952. Stochastic estimation of the maximum of a regression function. The Annals of Mathematical Statistics 23, 3 (1952), 462–466.Google Scholar
Cross Ref
- [48] . 2018. The broken shield: Measuring revocation effectiveness in the windows code-signing PKI. In 27th USENIX Security Symposium (USENIX Security’18). 851–868.Google Scholar
- [49] . 2019. SageDB: A learned database system. In 9th Biennial Conference on Innovative Data Systems Research (CIDR’19).Google Scholar
- [50] . 2018. The case for learned index structures. In Proceedings of the 2018 International Conference on Management of Data. ACM, 489–504.Google Scholar
Digital Library
- [51] . 2001. Design and implementation of a predictive file prefetching algorithm. In USENIX Annual Technical Conference. 105–118.Google Scholar
Digital Library
- [52] . 2016. Lynx: A learning Linux prefetching mechanism for SSD performance model. In 5th Non-Volatile Memory Systems and Applications Symposium (NVMSA’16). 1–6.Google Scholar
- [53] . 2017. Deep convolutional neural network inference with floating-point weights and fixed-point activations. (2017).
arXiv:1703.03073. arxiv.org.Google Scholar - [54] . 2018. APS: Adaptable prefetching scheme to different running environments for concurrent read streams in distributed file systems. The Journal of Supercomputing 74, 6 (2018), 2870–2902.Google Scholar
Digital Library
- [55] . 2021. A learning-based approach towards automated tuning of SSD configurations. arXiv:2110.08685. arxiv.org.Google Scholar
- [56] . 2014. On the importance of evaluating storage systems’ $Costs. In Proceedings of the 6th USENIX Conference on Hot Topics in Storage and File Systems (HotStorage’14).Google Scholar
Digital Library
- [57] . 2007. STEP: Sequentiality and thrashing detection based prefetching to improve performance of networked storage servers. In 27th International Conference on Distributed Computing Systems (ICDCS’07). IEEE, 64–64.Google Scholar
Digital Library
- [58] . 2015. Performing initiative data prefetching in distributed file systems for cloud computing. IEEE Transactions on Cloud Computing 5, 3 (2015), 550–562.Google Scholar
Cross Ref
- [59] . 2018. Tune: A research platform for distributed model selection and training. arXiv:1807.05118. arxiv.org.Google Scholar
- [60] . 2016. Fixed point quantization of deep convolutional networks. In International Conference on Machine Learning. 2849–2858.Google Scholar
Digital Library
- [61] . 2022. On-device training under 256 KB memory. arXiv:2206.15472. arxiv.org.Google Scholar
- [62] . 2021. Linux Kernel Module Signing Facility. (
Jan. 2021). https://www.kernel.org/doc/html/v4.19/admin-guide/module-signing.html?highlight=signing.Google Scholar - [63] . 2019. LTTng: An Open Source Tracing framework for Linux. (
April 2019). https://lttng.org.Google Scholar - [64] . 2020. Learning-based memory allocation for C++ server workloads. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’20). 541–556.Google Scholar
Digital Library
- [65] . 2009. Best Practices for running VMware vSphere on Network Attached Storage. (2009). https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/vmware-nfs-bestpractices-white-paper-en.pdf.Google Scholar
- [66] . 2010. Rectified linear units improve restricted Boltzmann machines. In Proceedings of the 27th International Conference on Machine Learning (ICML’10). 807–814.Google Scholar
Digital Library
- [67] . 2019. Improving performance of distributed file system through frequent block access pattern-based prefetching algorithm. In 2019 10th International Conference on Computing, Communication and Networking Technologies (ICCCNT’19). IEEE, 1–7.Google Scholar
Cross Ref
- [68] . 2005. Applying machine learning techniques to improve Linux process scheduling. In TENCON 2005-2005 IEEE Region 10 Conference. IEEE, 1–6.Google Scholar
Cross Ref
- [69] . 2020. MySQL. (
May 2020). http://www.mysql.com.Google Scholar - [70] . 2019. PyTorch: An imperative style, high-performance deep learning library. In Advances in Neural Information Processing Systems 32: Annual Conference on Neural Information Processing Systems (NeurIPS’19). 8024–8035.Google Scholar
- [71] . 1895. Note on regression and inheritance in the case of two parents. Proceedings of the Royal Society of London 58, 347-352 (1895), 240–242.Google Scholar
Cross Ref
- [72] . 1901. LIII. On lines and planes of closest fit to systems of points in space. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science 2, 11 (1901), 559–572.Google Scholar
Cross Ref
- [73] . 2021. Toward reconfigurable kernel datapaths with learned optimizations. In Proceedings of the Workshop on Hot Topics in Operating Systems. 175–182.Google Scholar
Digital Library
- [74] . 2018. Explanation methods in deep learning: Users, values, concerns and challenges. In Explainable and Interpretable Models in Computer Vision and Machine Learning. Springer, 19–36.Google Scholar
Cross Ref
- [75] . 2005. Making Early Predictions of File Accesses. Ph.D. Dissertation. University of Houston.Google Scholar
- [76] . 1951. A stochastic approximation method. The Annals of Mathematical Statistics (1951), 400–407.Google Scholar
Cross Ref
- [77] . 1994. An introduction to disk drive modeling. Computer 27, 3 (1994), 17–28.Google Scholar
Digital Library
- [78] . 1986. Learning representations by back-propagating errors. Nature 323, 6088 (1986), 533–536.Google Scholar
Cross Ref
- [79] . 2017. Understanding and optimizing asynchronous low-precision stochastic gradient descent. In Proceedings of the 44th Annual International Symposium on Computer Architecture (ISCA’17). 561–574.Google Scholar
- [80] . 2021. Toward interpretable machine learning: Transparent deep neural networks and beyond. ArXiv abs/2003.07631 (2021). arxiv.org.Google Scholar
- [81] . 2011. Improving throughput for small disk requests with proximal \(\lbrace\)I/O\(\rbrace\). In 9th USENIX Conference on File and Storage Technologies (FAST’11).Google Scholar
Digital Library
- [82] . 2010. Evaluating performance and energy in file system server workloads. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST’10). 253–266.Google Scholar
- [83] . 1998. An analytic behavior model for disk drives with readahead caches and request reordering. In SIGMETRICS.Google Scholar
- [84] . 1999. Why does file system prefetching work?. In USENIX Annual Technical Conference, General Track. 71–84.Google Scholar
Digital Library
- [85] . 2020. Running neural networks on the NIC. arXiv:2009.02353. arxiv.org.Google Scholar
- [86] . 2012. Metronome: Operating system level performance management via self-adaptive computing. In Proceedings of the 49th Annual Design Automation Conference. 856–865.Google Scholar
Digital Library
- [87] 2020. SOD—An Embedded, Modern Computer Vision and Machine Learning Library. (
Sept. 2020). https://sod.pixlab.io/.Google Scholar - [88] . 2021. Towards optimal configuration of microservices. In Proceedings of the 1st Workshop on Machine Learning and Systems. 7–14.Google Scholar
Digital Library
- [89] . 2020. The Impact of Slow NFS on Data Systems. (
June 2020). https://engineering.linkedin.com/blog/2020/the-impact-of-slow-nfs-on-data-systems.Google Scholar - [90] . 2018. Stacker: An autonomic data movement engine for extreme-scale data staging-based in-situ workflows. In SC18: International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, 920–930.Google Scholar
Digital Library
- [91] . 2011. Benchmarking file system benchmarking: It *IS* rocket science. In Proceedings of HotOS XIII: The 13th USENIX Workshop on Hot Topics in Operating Systems.Google Scholar
Digital Library
- [92] 2020. TensorFlow Lite. (
Jan. 2020). https://www.tensorflow.org/lite.Google Scholar - [93] . 2004. Automatic ARIMA time series modeling for adaptive I/O prefetching. IEEE Transactions on Parallel and Distributed Systems 15, 4 (2004), 362–377.Google Scholar
Digital Library
- [94] . 1999. TPC Benchmark H (Decision Support). (1999). www.tpc.org/tpch.Google Scholar
- [95] . 2012. Flashy prefetch’12 ng for high-performance flash drives. In 2012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST). IEEE, 1–12.Google Scholar
- [96] . 2008. Visualizing data using t-SNE. Journal of Machine Learning Research 9, 86 (2008), 2579–2605. http://jmlr.org/papers/v9/vandermaaten08a.html.Google Scholar
- [97] . 2018. Driving cache replacement with ML-based LeCaR. In Proceedings of the 10th USENIX Workshop on Hot Topics in Storage (HotStorage’18). USENIX.Google Scholar
- [98] . 2003. Using multiple predictors to improve the accuracy of file access predictions. In Proceedings of the 20th IEEE/11th NASA Goddard Conference on Mass Storage Systems and Technologies (MSST’03). IEEE, 230–240.Google Scholar
Cross Ref
- [99] . 2022. Recurrent neural network. https://en.wikipedia.org/wiki/Recurrent_neural_network.Google Scholar
- [100] . 2018. iFetcher: User-level prefetching framework with file-system event monitoring for Linux. IEEE Access 6 (2018), 46213–46226.Google Scholar
Cross Ref
- [101] . 2008. On the design of a new Linux readahead framework. Operating Systems Review 42 (2008), 75–84.Google Scholar
Digital Library
- [102] . 2011. Evaluation and optimization of kernel file readaheads based on Markov decision models. Computer Journal 54, 11 (2011), 1741–1755.Google Scholar
Digital Library
- [103] . 2020. Frequent access pattern-based prefetching inside of solid-state drives. In 2020 Design, Automation & Test in Europe Conference & Exhibition (DATE’20). IEEE, 720–725.Google Scholar
Cross Ref
- [104] . 2021. SSD-based workload characteristics and their performance implications. ACM Transactions on Storage (TOS) 17, 1 (2021), 1–26.Google Scholar
Digital Library
- [105] . 2002. A decoupled architecture for application-specific file prefetching. In Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference, (Ed.). USENIX, 157–170.Google Scholar
Digital Library
- [106] . 2017. Adaptive prefetching for accelerating read and write in NVM-based file systems. In 2017 IEEE International Conference on Computer Design (ICCD’17). IEEE, 49–56.Google Scholar
Cross Ref
Index Terms
Improving Storage Systems Using Machine Learning
Recommendations
A Machine Learning Framework to Improve Storage System Performance
HotStorage '21: Proceedings of the 13th ACM Workshop on Hot Topics in Storage and File SystemsStorage systems and their OS components are designed to accommodate a wide variety of applications and dynamic workloads. Storage components inside the OS contain various heuristic algorithms to provide high performance and adaptability for different ...
Read-Performance Optimization for Deduplication-Based Storage Systems in the Cloud
Data deduplication has been demonstrated to be an effective technique in reducing the total data transferred over the network and the storage space in cloud backup, archiving, and primary storage systems, such as VM (virtual machine) platforms. However, ...
Storage systems for movies-on-demand video servers
MSS '95: Proceedings of the 14th IEEE Symposium on Mass Storage SystemsWe evaluate storage system alternatives for movies-on-demand video servers. We begin by characterizing the movies-on-demand workload. We briefly discuss performance in disk arrays. First, we study disk farms in which one movie is stored per disk. This ...






Comments