<?xml version='1.0'?> <!--*-nxml-*--> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> <!-- This file is part of systemd. Copyright 2010 Lennart Poettering systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. systemd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with systemd; If not, see <http://www.gnu.org/licenses/>. --> <refentry id="systemd-readahead-replay.service" conditional='ENABLE_READAHEAD'> <refentryinfo> <title>systemd-readahead-replay.service</title> <productname>systemd</productname> <authorgroup> <author> <contrib>Developer</contrib> <firstname>Lennart</firstname> <surname>Poettering</surname> <email>lennart@poettering.net</email> </author> </authorgroup> </refentryinfo> <refmeta> <refentrytitle>systemd-readahead-replay.service</refentrytitle> <manvolnum>8</manvolnum> </refmeta> <refnamediv> <refname>systemd-readahead-replay.service</refname> <refname>systemd-readahead-collect.service</refname> <refname>systemd-readahead-done.service</refname> <refname>systemd-readahead-done.timer</refname> <refname>systemd-readahead</refname> <refpurpose>Disk read ahead logic</refpurpose> </refnamediv> <refsynopsisdiv> <para><filename>systemd-readahead-replay.service</filename></para> <para><filename>systemd-readahead-collect.service</filename></para> <para><filename>systemd-readahead-done.service</filename></para> <para><filename>systemd-readahead-done.timer</filename></para> <cmdsynopsis> <command>/usr/lib/systemd/systemd-readahead/systemd-readahead</command> <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="plain">COMMAND</arg> <arg choice="opt">DIRECTORY | FILE</arg> </cmdsynopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <para><filename>systemd-readahead-collect.service</filename> is a service that collects disk usage patterns at boot time. <filename>systemd-readahead-replay.service</filename> is a service that replays this access data collected at the subsequent boot. Since disks tend to be magnitudes slower than RAM, this is intended to improve boot speeds by pre-loading early at boot all data on disk that is known to be read for the complete boot process.</para> <para><filename>systemd-readahead-done.service</filename> is executed a short while after boot completed and signals <filename>systemd-readahead-collect.service</filename> to end data collection. On this signal, this service will then sort the collected disk accesses and store information about them in <filename>/.readahead</filename>.</para> <para>Normally, both <filename>systemd-readahead-collect.service</filename> and <filename>systemd-readahead-replay.service</filename> are activated at boot so that access patterns from the preceding boot are replayed and new data collected for the subsequent boot. However, on read-only media where the collected data cannot be stored, it might be a good idea to disable <filename>systemd-readahead-collect.service</filename>.</para> <para>On rotating media, when replaying disk accesses at early boot, <filename>systemd-readahead-replay.service</filename> will order read requests by their location on disk. On non-rotating media, they will be ordered by their original access timestamp. If the file system supports it, <filename>systemd-readahead-collect.service</filename> will also defragment and rearrange files on disk to optimize subsequent boot times.</para> </refsect1> <refsect1> <title>Options</title> <para><filename>systemd-readahead</filename> understands the following options:</para> <variablelist> <varlistentry> <term><option>-h</option></term> <term><option>--help</option></term> <listitem><para>Prints a short help text and exits.</para></listitem> </varlistentry> <varlistentry> <term><option>--version</option></term> <listitem><para>Prints a short version string and exits.</para></listitem> </varlistentry> <varlistentry> <term><option>--max-files=</option></term> <listitem><para>Maximum number of files to read ahead. Only valid for thes <command>collect</command> command.</para></listitem> </varlistentry> <varlistentry> <term><option>--file-size-max=</option></term> <listitem><para>Maximum size of files in bytes to read ahead. Only valid for the <command>collect</command> and <command>replay</command> commands.</para></listitem> </varlistentry> <varlistentry> <term><option>--timeout=</option></term> <listitem><para>Maximum time in microseconds to spend collecting data. Only valid for the <command>collect</command> command.</para></listitem> </varlistentry> </variablelist> </refsect1> <refsect1> <title>Commands</title> <para>The following commands are understood by <filename>systemd-readahead</filename>:</para> <variablelist> <varlistentry> <term><command>collect [<replaceable>DIRECTORY</replaceable>]</command></term> <listitem> <para>Collect read-ahead data on early boot. When terminating, it will write out a pack file to the indicated directory containing the read-ahead data. </para> </listitem> </varlistentry> <varlistentry> <term><command>replay [<replaceable>DIRECTORY</replaceable>]</command></term> <listitem> <para>Perform read-ahead on the specified directory tree.</para> </listitem> </varlistentry> <varlistentry> <term><command>analyze [<replaceable>FILE</replaceable>]</command></term> <listitem> <para>Dumps the content of the read-ahead pack file to the terminal. For each file, the output lists approximately how much will be read ahead by the <command>replay</command> command.</para> </listitem> </varlistentry> </variablelist> </refsect1> <refsect1> <title>See Also</title> <para> <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> </para> </refsect1> </refentry>