Software: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
- Bcache support readahead of files and metadata.[8]
- ZFS supports readahead of files and metadata, when using ARC.[9]
See also
References
- ↑ Jonathan Corbet (2005-10-12). "Adaptive file readahead". LWN.net. https://lwn.net/Articles/155510/.
- ↑ "readahead(2) - Linux manual page". http://man7.org/linux/man-pages/man2/readahead.2.html.
- ↑ Michael Opdenacker (2007-06-15). "Readahead: time-travel techniques for desktop and embedded systems". pp. 5–6. http://free-electrons.com/pub/readahead/doc/ols2007-readahead-paper.pdf.
- ↑ "Readahead". https://fedorahosted.org/readahead/.
- ↑ "systemd-readahead-replay.service". 2014-03-26. http://www.freedesktop.org/software/systemd/man/systemd-readahead.html.
- ↑ "systemd/systemd – System and Session Manager: Changes with 217". https://cgit.freedesktop.org/systemd/systemd/tree/NEWS#n950.
- ↑ Krzysztof Lichota (2008). "Linux solution for prefetching necessary data during application and system startup". http://prefetch.googlecode.com/files/gsoc-prefetching-presentation.pdf.
- ↑ "bcache.txt\Documentation - linux-bcache.git - Unnamed repository; edit this file 'description' to name the repository.". https://evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt.
- ↑ "Part 10 - Monitoring and Tuning ZFS Performance| Oracle Community". https://community.oracle.com/docs/DOC-914874.
Original source: https://en.wikipedia.org/wiki/Readahead.
Read more |