- アプリケーションごとに最適なPage Cacheの容量は異なる
- たとえばストリーミングサーバの場合、シーケンシャルなデータの書き出しをするため、Page Cacheは必要ない
- kernel2.6では、アプリケーション側からデータのアクセスパターンをkernel側に宣言するシステムコール"posix_fadvise()"が用意された
- プログラムのコードにこのシステムコールを含めることにより、利用するPage Cacheの量をアプリケーションの特性にあわせることができる
posix_fadvise()関数の引数
アクセスパターン | 内容 |
---|---|
POSIX_FADV_NORMAL | 特に特徴のないアクセスパターン/デフォルト |
POSIX_FADV_SEQUENTIAL | 指定されたデータにシーケンシャルにアクセスするパターン |
POSIX_FADV_RANDOM | 指定されたデータにランダムな順番でアクセスするパターン |
POSIX_FADV_NOREUSE | 指定されたデータには1度しかアクセスしないパターン |
POSIX_FADV_WILLNEED | 指定されたデータにすぐに再度アクセスするパターン/この場合、一定間隔Page Cacheを維持する |
POSIX_FADV_DONTNEED | 指定されたデータにはすぐには再度アクセスしないパターン/この場合、積極的にPage Cacheを解放する |