posix_fadvice / POSIX_FADV_DONTNEEDはLinuxで動作しますか?

posix_fadvice / POSIX_FADV_DONTNEEDはLinuxで動作しますか?

大きなファイルを一度だけスキャンする場合は、ページキャッシュに与える影響を心配する必要がありますか?または、スキャンによってページキャッシュが無意味に変動しないように、OSが注意を払う必要がありますか?ページキャッシュで利点を得ることができる他のプロセスに影響を与えたくありません。

を使用することを検討しましたが、Linuxで何をすべきかについてのPOSIX_FADV_DONTNEED矛盾するアドバイスを見ました。posix_fadvicePOSIX_FADV_DONTNEED

誰かが明確にすることができますか?ありがとうございます。

答え1

POSIX_FADV_DONTNEEDLinuxでは考慮されます。mm/fadvise.cカーネルのソースコードから。呼び出されるたびに、posix_fadvise()そのPOSIX_FADV_DONTNEEDページキャッシュはすべて消費されます。

〜のようにゼチル上記のように、I / Oがページキャッシュに与える影響を最小限に抑えるためのより良い方法はO_DIRECT

関連情報