Readahead is asystem call of theLinux kernel that loads a file's contents into thepage cache. Thisprefetches the file so that when it is subsequently accessed, its contents are read from themain memory (RAM) rather than from ahard disk drive (HDD), resulting in much lower file access latencies.[1][2]
ManyLinux distributions use readahead on a list of commonly used files to speed upbooting. In such a setup, if thekernel is booted with theprofileboot 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 usesystemd, 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 experimentalpage-level prefetching systems have been developed to further improve performance.[7]