Readahead является системным вызовом из ядра Linux , который загружает содержимое файла в в кэш страниц . Это выполняет предварительную выборку файла, так что при последующем доступе к нему его содержимое считывается из основной памяти ( RAM ), а не с жесткого диска (HDD), что приводит к гораздо меньшим задержкам доступа к файлам. [1] [2]
Многие дистрибутивы Linux используют опережающее чтение в списке часто используемых файлов для ускорения загрузки . В такой настройке, если ядро загружается с параметром загрузки профиля , оно будет записывать все обращения к файлам во время загрузки и записывать новый список файлов для чтения во время последующих загрузок. Это ускорит запуск дополнительных установленных служб, поскольку они не включены в список опережающего чтения по умолчанию. [3]
В дистрибутивах Linux, использующих systemd , двоичный файл readahead (как часть последовательности загрузки) был заменен на systemd-readahead. [4] [5] Однако поддержка опережающего чтения была удалена из systemd в его версии 217, поскольку она описывалась как не поддерживаемая и не способная обеспечить ожидаемые преимущества в производительности. [6]
Некоторые экспериментальные системы предварительной выборки на уровне страниц были разработаны для дальнейшего повышения производительности. [7]
В файловой системе [ править ]
Bcache поддерживает опережающее чтение файлов и метаданных. [8]
ZFS поддерживает опережающее чтение файлов и метаданных при использовании ARC. [9]
Ссылки [ править ]
- ^ Джонатан Корбет (2005-10-12). «Адаптивное опережающее чтение файлов» . LWN.net . Проверено 20 августа 2014 .
- ^ "readahead (2) - страница руководства Linux" . man7.org . Проверено 9 апреля 2014 .
- ^ Майкл Опденакер (15.06.2007). «Readahead: техника путешествий во времени для настольных и встроенных систем» (PDF) . free-electrons.com . С. 5–6 . Проверено 1 мая 2014 .
- ^ "Readahead" . fedorahosted.org . Проверено 9 апреля 2014 .
- ^ "systemd-readahead-replay.service" . freedesktop.org . 2014-03-26. Архивировано из оригинала на 2014-04-09 . Проверено 9 апреля 2014 .
- ^ "systemd / systemd - Менеджер системы и сеанса: изменения в 217" . cgit.freedesktop.org . Проверено 9 февраля 2018 .
- ^ Кшиштоф Lichota (2008). «Linux-решение для предварительной загрузки необходимых данных при запуске приложения и системы» (PDF) . code.google.com . Архивировано из оригинального (PDF) 11 декабря 2009 года . Проверено 28 июля 2014 .
- ^ "bcache.txt \ Documentation - linux-bcache.git - Репозиторий без имени; отредактируйте этот файл 'description', чтобы присвоить имя репозиторию" . evilpiepirate.org . Дата обращения 1 мая 2020 .
- ^ «Часть 10 - Мониторинг и настройка производительности ZFS | Сообщество Oracle» . community.oracle.com . Дата обращения 1 мая 2020 .