Readahead
Readaheadは、Linuxカーネルのシステムコールで、ファイルの内容をページキャッシュに読み込む。これは、順次アクセスされたファイルをプリフェッチし、そのコンテンツを、HDDよりもRAMから読み込まれるようする。これはファイルアクセスのレイテンシを低くする[1][2]。
多くのLinuxディストリビューションは、一般よく使われるファイルのリストについてのreadaheadを起動高速化のために用いている。そのような構成では、カーネルがprofileブートパラメータとともにブートしたら、ブート中の全てのファイルアクセスが記録され、後のブートシークエンスで読み込まれるファイルの新しいリストが作られる。これは、追加のインストールされたサービスを高速に開始する。なぜなら、これらのサービスは、デフォルトのreadaheadのリストに含まれていないからである[3]。
systemdを用いるLinuxディストリビューションでは、readaheadのバイナリは(ブートシークエンスの一部としては)systemd-readaheadに置き換えられている[4]。しかしながら、systemdのバージョン 217で、readaheadのサポートは除去された。これは、メンテナンスされておらず、期待されるパフォーマンスの利益を提供できていないことによるとされる[5]。
現在、実験的なページレベルのシステムのプリフェッチが、さらにパフォーマンスを向上させるために開発されている[6]。
脚注
編集出典
編集- ^ Jonathan Corbet (2005年10月12日). “Adaptive file readahead”. LWN.net. 2014年8月20日閲覧。
- ^ “readahead(2) - Linux manual page”. man7.org. 2014年4月9日閲覧。
- ^ Michael Opdenacker (2007年6月15日). “Readahead: time-travel techniques for desktop and embedded systems” (PDF). free-electrons.com. pp. 5–6. 2014年5月1日閲覧。
- ^ “Readahead”. fedorahosted.org. 2014年4月9日閲覧。
- ^ “systemd/systemd – System and Session Manager: Changes with 217”. cgit.freedesktop.org. 2018年2月9日閲覧。
- ^ Krzysztof Lichota (2008年). “Linux solution for prefetching necessary data during application and system startup” (PDF). code.google.com. 2009年12月11日時点のオリジナルよりアーカイブ。2014年7月28日閲覧。