readahead
Readahead is a system call of the Linux kernel that loads a file's contents into the page cache. This prefetches the file so that when it is subsequently accessed, its contents are read from the main memory (RAM) rather than from a hard disk drive (HDD), resulting in much lower file access latencies.[1] [2]
Many Linux distributions use readahead on a list of commonly used files to speed up booting. In such a setup, if the kernel is booted with the profile boot parameter, it will record all file accesses during bootup and write a new list of files to be read during later boot sequences. This will make additional installed services start faster, because they are not included in the default readahead list.[3]
In Linux distributions that use systemd, readahead binary (as part of the boot sequence) was replaced by systemd-readahead.[4] [5] However, support for readahead was removed from systemd in its version 217, being described as unmaintained and unable to provide expected performance benefits.[6]
Certain experimental page-level prefetching systems have been developed to further improve performance.[7]
In filesystem
[edit ]- Bcache supports readahead of files and metadata.[8]
- ZFS supports readahead of files and metadata, when using ARC.[9]
See also
[edit ]References
[edit ]- ^ Jonathan Corbet (2005年10月12日). "Adaptive file readahead". LWN.net . Retrieved 2014年08月20日.
- ^ "readahead(2) - Linux manual page". man7.org. Retrieved 2014年04月09日.
- ^ Michael Opdenacker (2007年06月15日). "Readahead: time-travel techniques for desktop and embedded systems" (PDF). free-electrons.com. pp. 5–6. Retrieved 2014年05月01日.
- ^ "Readahead". fedorahosted.org. Retrieved 2014年04月09日.
- ^ "systemd-readahead-replay.service". freedesktop.org. 2014年03月26日. Archived from the original on 2014年04月09日. Retrieved 2014年04月09日.
- ^ "systemd/systemd – System and Session Manager: Changes with 217". cgit.freedesktop.org. Retrieved 2018年02月09日.
- ^ Krzysztof Lichota (2008). "Linux solution for prefetching necessary data during application and system startup" (PDF). code.google.com. Archived from the original (PDF) on 2009年12月11日. Retrieved 2014年07月28日.
- ^ "bcache.txt\Documentation - linux-bcache.git - Unnamed repository; edit this file 'description' to name the repository". evilpiepirate.org. Retrieved 1 May 2020.
- ^ "Part 10 - Monitoring and Tuning ZFS Performance| Oracle Community". community.oracle.com. Retrieved 1 May 2020.