systemd-readahead(8) Disk read ahead logic

Other Alias

systemd-readahead-replay.service, systemd-readahead-collect.service, systemd-readahead-done.service, systemd-readahead-done.timer






/usr/lib/systemd/systemd-readahead/systemd-readahead [OPTIONS...] COMMAND [DIRECTORY | FILE]


systemd-readahead-collect.service is a service that collects disk usage patterns at boot time. systemd-readahead-replay.service 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.

systemd-readahead-done.service is executed a short while after boot completed and signals systemd-readahead-collect.service to end data collection. On this signal this service will then sort the collected disk accesses and store information about them disk in /.readahead.

Normally, both systemd-readahead-collect.service and systemd-readahead-replay.service 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 systemd-readahead-collect.service.

On rotating media, when replaying disk accesses at early boot systemd-readahead-replay.service 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 systemd-readahead-collect.service will also defragment and rearrange files on disk to optimize subsequent boot times.


systemd-readahead understands the following options:

-h, --help

Prints a short help text and exits.


Maximum number of files to read ahead. Only valid for thes collect command.


Maximum size of files (in bytes) to read ahead. Only valid for the collect and replay commands.


Maximum time (in usec) to to spend collecting data. Only valid for the collect command.


The following commands are understood by systemd-readahead:

collect [DIRECTORY]

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.

replay [DIRECTORY]

Perform read-ahead on the specified directory tree.

analyze [FILE]

Dumps the content of the read-ahead pack file to the terminal. The output lists approximately for each file how much will be read-ahead by the replay command.