计算机科学
操作系统
线程(计算)
页面错误
延迟(音频)
写入缓冲区
绩效改进
按需分页
带宽遏流
并行计算
虚拟内存
内存管理
半导体存储器
隐藏物
缓存算法
CPU缓存
机械工程
电信
运营管理
气体压缩机
经济
工程类
作者
Jong-Seok Kim,Chan‐Mo Yu,Euiseong Seo
标识
DOI:10.1109/iccd58817.2023.00078
摘要
Buffered I/O is commonly used as a default mechanism in most file systems because it provides high performance by keeping recently accessed data in memory as page caches. We discovered that the long-standing code within the memory management of the Linux kernel performs unnecessary and indiscriminate operations during the page reclaiming and writing procedures, leading to a degradation in the performance of buffered I/O. Current memory management performs aging tasks, moving pages from the active state list to the inactive state list, even during page reclamation for urgent memory acquisition. It also unnecessarily holds the lock used for modifying the least recently used (LRU) list. These non-essential tasks results in performance degradation when buffered I/O is allocating pages and adding them into the LRU list. Furthermore, in write-intensive situations, the performance of writes is degraded by blindly forcing the write thread to sleep in order to maintain dirty pages at a pre-determined ratio in total memory. In this paper, we improve the memory management system by eliminating these unnecessarily or blindly performed aging, locks, and sleep tasks, thereby enhancing the performance of buffered I/O. We implemented our proposed approaches in the Linux kernel and evaluated these impacts on the performance of buffered I/O using FIO, FileBench, and YCSB on RocksDB. Our approach reduced the tail latency of random reads and improved the throughput of random writes in most workloads.
科研通智能强力驱动
Strongly Powered by AbleSci AI