TY - GEN
T1 - Revitalizing Buffered I/O
T2 - 41st IEEE International Conference on Computer Design, ICCD 2023
AU - Kim, Jongseok
AU - Yu, Chanu
AU - Seo, Euiseong
N1 - Publisher Copyright:
© 2023 IEEE.
PY - 2023
Y1 - 2023
N2 - 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.
AB - 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.
KW - LRU
KW - memory management
KW - operating systems
KW - page replacement
UR - https://www.scopus.com/pages/publications/85182333026
U2 - 10.1109/ICCD58817.2023.00078
DO - 10.1109/ICCD58817.2023.00078
M3 - Conference contribution
AN - SCOPUS:85182333026
T3 - Proceedings - IEEE International Conference on Computer Design: VLSI in Computers and Processors
SP - 475
EP - 482
BT - Proceedings - 2023 IEEE 41st International Conference on Computer Design, ICCD 2023
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 6 November 2023 through 8 November 2023
ER -