readahead

{{Lowercase title}}

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.{{cite web

| url = https://lwn.net/Articles/155510/

| title = Adaptive file readahead

| date = 2005-10-12 | access-date = 2014-08-20

| author = Jonathan Corbet | publisher = LWN.net

}}{{cite web

| url = http://man7.org/linux/man-pages/man2/readahead.2.html

| title = readahead(2) - Linux manual page

| access-date = 2014-04-09

| website = man7.org

}}

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 {{mono|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.{{cite web

| url = http://free-electrons.com/pub/readahead/doc/ols2007-readahead-paper.pdf

| title = Readahead: time-travel techniques for desktop and embedded systems

| date = 2007-06-15 | access-date = 2014-05-01

| author = Michael Opdenacker | website = free-electrons.com

| pages = 5–6

}}

In Linux distributions that use systemd, readahead binary (as part of the boot sequence) was replaced by systemd-readahead.{{cite web

| url = https://fedorahosted.org/readahead/

| title = Readahead

| access-date = 2014-04-09

| website = fedorahosted.org

}}{{cite web

|url = http://www.freedesktop.org/software/systemd/man/systemd-readahead.html

|title = systemd-readahead-replay.service

|date = 2014-03-26

|access-date = 2014-04-09

|website = freedesktop.org

|url-status = dead

|archive-url = https://web.archive.org/web/20140409235938/http://www.freedesktop.org/software/systemd/man/systemd-readahead.html

|archive-date = 2014-04-09

}} However, support for readahead was removed from systemd in its version 217, being described as unmaintained and unable to provide expected performance benefits.{{cite web|url=https://cgit.freedesktop.org/systemd/systemd/tree/NEWS#n950|title=systemd/systemd – System and Session Manager: Changes with 217|website=cgit.freedesktop.org|access-date=2018-02-09}}

Certain experimental page-level prefetching systems have been developed to further improve performance.{{cite web

|url = http://prefetch.googlecode.com/files/gsoc-prefetching-presentation.pdf

|title = Linux solution for prefetching necessary data during application and system startup

|year = 2008

|access-date = 2014-07-28

|author = Krzysztof Lichota

|website = code.google.com

|url-status = dead

|archive-url = https://web.archive.org/web/20091211124530/http://prefetch.googlecode.com/files/gsoc-prefetching-presentation.pdf

|archive-date = 2009-12-11

}}

In filesystem

  • Bcache supports readahead of files and metadata.{{cite web |title=bcache.txt\Documentation - linux-bcache.git - Unnamed repository; edit this file 'description' to name the repository. |url=https://evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt |website=evilpiepirate.org |access-date=1 May 2020}}
  • ZFS supports readahead of files and metadata, when using ARC.{{cite web |title=Part 10 - Monitoring and Tuning ZFS Performance{{!}} Oracle Community |url=https://community.oracle.com/docs/DOC-914874 |website=community.oracle.com |access-date=1 May 2020}}

See also

References

{{Reflist|30em}}

{{Linux kernel}}

{{Linux}}

Category:Preloading and prebinding

Category:Linux file system-related software

{{Linux-stub}}