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.
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.
In Linux distributions that use systemd, readahead binary (as part of the boot sequence) was replaced by systemd-readahead. However, support for readahead was removed from systemd in its version 217, being described as unmaintained and unable to provide expected performance benefits.
Certain experimental page-level prefetching systems have been developed to further improve performance.
- 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.