ページ解放の方針
linux v2.4ではページ解放のアルゴリズムが改善されている。大規模サーバでの利用を前提としているようだ。v2.2では比較的単純だったアルゴリズムに手が加えられている。
- 可能な限り空きメモリにせず、キャッシュとして利用する。
- 解放可能なページでも解放せず、最後までキャッシュとして残す。 ページアロケート時は、このページキャッシュ(スワップキャッシュ) から直接確保できるようにする。
- 利用価値の高いメモリは解放しない
- ACTIVE、INACTIVE-DIRTY、INACTIVE-CLEANの3レベルの ページのリンクリストを用意する
- ACTIVEリストは、現在活発に利用されているページをリンクする。
- INACTIVE-DIRTYリストは、解放候補の
- INACTIVE-CLEANリストは、いつでも即解放可能なページをリンクする。 存在意義のないページではなく、純粋なページキャッシュ、 スワップキャッシュである。(ディスク上の値と一致している)
- ACTIVEリストのページに対する、細かいエイジング処理 このリストにリンクされているページは数段階の エイジ(利用頻度)属性を持つ
- 各リストはLRU管理。
- 激しくメモリ確保が行われる場合は、早めに多めの空きメモリを 確保するように動作させる。
- メモリ確保時、空きメモリだけでなく、INACTIVE-CLEANリスト上の キャッシュからでも、直接確保できるようにする。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1