這個文件是什麼: .readahead 在我的根目錄中做什麼?
當我做:
ls -a /
在 Fedora 21 上有一個隱藏文件,名為:
.readahead
它是 104092k這個文件是什麼?……它應該在那裡嗎?
我在Google上找到了這個:
摘抄:
readahead 是 Linux 核心的一個系統呼叫,它將文件的內容載入到頁面記憶體中,從而提供了一種文件預取技術。當一個文件隨後被訪問時,它的內容是從主記憶體儲器 (RAM) 而不是從硬碟驅動器 (HDD) 中讀取的,由於主記憶體儲器的性能要高得多,因此文件訪問延遲要低得多。
摘抄:
readahead() 對文件啟動預讀,以便從記憶體中滿足對該文件的後續讀取,而不是在磁碟 I/O 上阻塞(假設預讀啟動得足夠早並且系統上的其他活動在此期間沒有從記憶體中刷新頁面)。
這個特定文件的唯一命中是這個郵件列表:
摘抄:
確實,這些文件似乎放錯了位置,.config 目錄看起來像是安裝的剩餘部分。.readahead 文件似乎是在啟動時寫入的,不知道寫入它的內容,用“審計”監視它可能會產生一些線索。
送出錯誤報告。
感謝@don_crissti 的連結:systemd-readahead-replay.service.html,這就是這個文件的作用。
摘抄:
systemd-readahead-collect.service 是一個在啟動時收集磁碟使用模式的服務。systemd-readahead-replay.service 是一項服務,可重放在後續啟動時收集的訪問數據。由於磁碟往往比 RAM 慢幾個數量級,這 旨在通過在啟動時提前預載入磁碟上已知在整個啟動過程中讀取的所有數據來提高啟動速度。
systemd-readahead-done.service 在啟動完成後不久執行,並向 systemd-readahead-collect.service 發出信號以結束數據收集。根據這個信號,該服務將對收集到的磁碟訪問進行排序**,並將有關它們的資訊儲存在 /.readahead 中**。
通常,systemd-readahead-collect.service 和 systemd-readahead-replay.service 在啟動時都被啟動,以便重播前一次啟動的訪問模式並為後續啟動收集新數據。但是,在無法儲存收集到的數據的只讀媒體上,禁用 systemd-readahead-collect.service 可能是個好主意。
在旋轉媒體上,當在早期啟動時重放磁碟訪問時,systemd-readahead-replay.service 將按讀取請求在磁碟上的位置排序。在非旋轉媒體上,它們將按其原始訪問時間戳排序。如果文件系統支持,systemd-readahead-collect.service 還會對磁碟上的文件進行碎片整理和重新排列,以優化後續啟動時間。