我正在研究順序編寫大文件(並且根本不讀)的應用程序,並且我想使用posix_fadvise()
來優化文件系統行爲。什麼posix_fadvise()參數指向順序文件寫入?
手冊頁中的函數描述表明最合適的策略是POSIX_FADV_SEQUENTIAL
。但是,Linux實現描述懷疑:
在Linux下,
POSIX_FADV_NORMAL
將readahead窗口設置爲支持設備的默認大小;POSIX_FADV_SEQUENTIAL
將此大小加倍,POSIX_FADV_RANDOM
完全禁用文件預讀。
由於我只寫數據(可能覆蓋文件),我不期望任何readahead。我應該堅持使用我的POSIX_FADV_SEQUENTIAL
還是使用POSIX_FADV_RANDOM
來禁用它?
其他選項如POSIX_FADV_NOREUSE
?或者也許根本不用posix_fadvise()
來寫作?
請注意,POSIX_FADV_NOREUSE沒有在Linux內核中實現。 – smoors 2012-06-20 12:02:56