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]


  1. Jonathan Corbet (2005-10-12). "Adaptive file readahead". Retrieved 2014-08-20.
  2. "readahead(2) - Linux manual page". Retrieved 2014-04-09.
  3. Michael Opdenacker (2007-06-15). "Readahead: time-travel techniques for desktop and embedded systems" (PDF). pp. 5–6. Retrieved 2014-05-01.
  4. "Readahead". Retrieved 2014-04-09.
  5. "systemd-readahead-replay.service". 2014-03-26. Archived from the original on 2014-04-09. Retrieved 2014-04-09.
  6. "systemd/systemd – System and Session Manager: Changes with 217". Retrieved 2018-02-09.
  7. Krzysztof Lichota (2008). "Linux solution for prefetching necessary data during application and system startup" (PDF). Archived from the original (PDF) on 2009-12-11. Retrieved 2014-07-28.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.