ページ解放の方針

linux v2.4ではページ解放のアルゴリズムが改善されている。大規模サーバでの利用を前提としているようだ。v2.2では比較的単純だったアルゴリズムに手が加えられている。

  1. 可能な限り空きメモリにせず、キャッシュとして利用する。
    1. 解放可能なページでも解放せず、最後までキャッシュとして残す。 ページアロケート時は、このページキャッシュ(スワップキャッシュ) から直接確保できるようにする。
  1. 利用価値の高いメモリは解放しない
    1. ACTIVE、INACTIVE-DIRTY、INACTIVE-CLEANの3レベルの ページのリンクリストを用意する
      • ACTIVEリストは、現在活発に利用されているページをリンクする。
      • INACTIVE-DIRTYリストは、解放候補の
      • INACTIVE-CLEANリストは、いつでも即解放可能なページをリンクする。 存在意義のないページではなく、純粋なページキャッシュ、 スワップキャッシュである。(ディスク上の値と一致している)
    • ACTIVEリストのページに対する、細かいエイジング処理 このリストにリンクされているページは数段階の エイジ(利用頻度)属性を持つ
    • 各リストはLRU管理。
  • 高い負荷時対策
    1. 激しくメモリ確保が行われる場合は、早めに多めの空きメモリを 確保するように動作させる。
    2. メモリ確保時、空きメモリだけでなく、INACTIVE-CLEANリスト上の キャッシュからでも、直接確保できるようにする。

(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST
1