📑 Table of Contents

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

edit
  • Bcache supports readahead of files and metadata.[8]
  • ZFS supports readahead of files and metadata, when using ARC.[9]

See also

edit

References

edit
  1. ^ Jonathan Corbet (2005-10-12). "Adaptive file readahead". LWN.net. Retrieved 2014-08-20.
  2. ^ "readahead(2) - Linux manual page". man7.org. Retrieved 2014-04-09.
  3. ^ 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.
  4. ^ "Readahead". fedorahosted.org. Retrieved 2014-04-09.
  5. ^ "systemd-readahead-replay.service". freedesktop.org. 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". cgit.freedesktop.org. Retrieved 2018-02-09.
  7. ^ 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.
  8. ^ "bcache.txt\Documentation - linux-bcache.git - Unnamed repository; edit this file 'description' to name the repository". evilpiepirate.org. Retrieved 1 May 2020.
  9. ^ "Part 10 - Monitoring and Tuning ZFS Performance| Oracle Community". community.oracle.com. Retrieved 1 May 2020.


📚 Artikel Terkait di Wikipedia

Ahead

Front (disambiguation) Onward (disambiguation) Progress (disambiguation) Readahead, a system call of the Linux kernel This disambiguation page lists articles

Rust for Linux

open read close sync … Linux-only futex epoll splice dnotify inotify readahead … In-kernel ALSA Crypto API io_uring DRM kernfs Memory barrier New API

Preload (software)

Behdad Esfahbod and uses Markov chains in its implementation. Prefetching Readahead Preload — An Adaptive Prefetching Daemon, Behdad Esfahbod, 2006. Project

PostgreSQL

I/O (AIO), enabling database users to perform concurrent I/O tasks like readahead and sequential scan. PostgreSQL manages concurrency through multiversion

Linux kernel version history

I/O scheduler Laptop mode Unsupported: 2.6.5 4 April 2004 Adaptive lazy readahead Unsupported: 2.6.4 11 March 2004 Intel x86-64 support ARMv6 support Virtual

Systemd

Linux distributions without systemd Operating system service management readahead runit Service Management Facility GNU Daemon Shepherd Upstart svchost

Ubuntu version history

installation from USB devices, the Update Manager, an upgrade notifier, readahead, grepmap, suspend, hibernating and standby support, dynamic frequency

Toybox

pwdx — Print working directory of processes listed on command line. readahead — Preload files into disk cache. readlink — Show what symlink points to