Readaheadは、Linuxカーネルのシステムコールで、ファイルの内容をページキャッシュに読み込む。これは、順次アクセスされたファイルをプリフェッチし、そのコンテンツを、HDDよりもRAMから読み込まれるようする。これはファイルアクセスのレイテンシを低くする[1][2]

多くのLinuxディストリビューションは、一般よく使われるファイルのリストについてのreadaheadを起動高速化のために用いている。そのような構成では、カーネルがprofileブートパラメータとともにブートしたら、ブート中の全てのファイルアクセスが記録され、後のブートシークエンスで読み込まれるファイルの新しいリストが作られる。これは、追加のインストールされたサービスを高速に開始する。なぜなら、これらのサービスは、デフォルトのreadaheadのリストに含まれていないからである[3]

systemdを用いるLinuxディストリビューションでは、readaheadのバイナリは(ブートシークエンスの一部としては)systemd-readaheadに置き換えられている[4]。しかしながら、systemdのバージョン 217で、readaheadのサポートは除去された。これは、メンテナンスされておらず、期待されるパフォーマンスの利益を提供できていないことによるとされる[5]

現在、実験的なページレベルのシステムのプリフェッチが、さらにパフォーマンスを向上させるために開発されている[6]

脚注 編集

出典 編集

  1. ^ Jonathan Corbet (2005年10月12日). “Adaptive file readahead”. LWN.net. 2014年8月20日閲覧。
  2. ^ readahead(2) - Linux manual page”. man7.org. 2014年4月9日閲覧。
  3. ^ Michael Opdenacker (2007年6月15日). “Readahead: time-travel techniques for desktop and embedded systems” (PDF). free-electrons.com. pp. 5–6. 2014年5月1日閲覧。
  4. ^ Readahead”. fedorahosted.org. 2014年4月9日閲覧。
  5. ^ systemd/systemd – System and Session Manager: Changes with 217”. cgit.freedesktop.org. 2018年2月9日閲覧。
  6. ^ Krzysztof Lichota (2008年). “Linux solution for prefetching necessary data during application and system startup” (PDF). code.google.com. 2009年12月11日時点のオリジナルよりアーカイブ。2014年7月28日閲覧。