/proc/sys/vm/* に関する文書          カーネルバージョン 2.2.10
        (c) 1998, 1999,  Rik van Riel <riel@nl.linux.org>

一般的な情報と法的宣言については、README を見てください。

==================================================================

このファイルには /proc/sys/vm 内の sysctl ファイルに関する文書が
含まれており、Linux カーネルバージョン 2.2 に対して有効です。

このディレクトリ内のファイル群は、Linux カーネルの仮想メモリサブ
システムの処理と、ダーティデータのディスクへの書出しをチューニング
するために使用できます。

これらのファイル群に対するデフォルト値と初期化ルーチンのほとんど
は、mm/swap.c 内にあります。

現在のところ、下記のファイル群が /proc/sys/vm 以下にあります。

  - overcommit_memory
  - page-cluster
  - dirty_ratio
  - dirty_background_ratio
  - dirty_expire_centisecs
  - dirty_writeback_centisecs
  - max_map_count
  - min_free_kbytes

==================================================================

dirty_ratio, dirty_background_ratio, dirty_expire_centisecs,
dirty_writeback_centisecs:

Documentation/filesystems/proc.txt を参照してください。

==================================================================

overcommit_memory:

このファイルには、メモリ・オーバーコミットを有効にするフラグが含
まれています。

このフラグが 0 の場合、カーネルは、ユーザ空間からメモリ要求があっ
たときに、残っているフリーメモリの量を評価しようとします。

このフラグが 1 の場合、カーネルは、実際にメモリを使い切るまでは
常に十分なメモリがあるかのように振舞います。

このフラグが 2 の場合、カーネルは、どのようなメモリ・オーバー
コミットも許さないように試みる「厳格なオーバーコミット」ポリシー
を使用します。

「もしものときのために」大量のメモリを malloc() するけれども、
それをほとんど使用しないというプログラムがたくさんあるので、
メモリ・オーバーコミットの機能は非常に役に立ちます。

デフォルトの値は 0 です。

詳細情報については、Documentation/vm/overcommit-accounting 及び
security/commoncap.c::cap_vm_enough_memory() を参照してください。

==================================================================

overcommit_ratio:

overcommit_memory が 2 にセットされているとき、スワップと、物理
RAM にこのパーセンテージを掛けたものとを足した値を、コミットされ
るアドレス空間が越えることは許されません。上記参照してください。

==================================================================

page-cluster:

Linux 仮想メモリサブシステムは、ページフォールト時に複数のページ
を読み込むことにより、過度のディスクシークを回避します。読み込む
ページの数は、マシンのメモリ量に依存します。

カーネルが一度に読み込むページの数は、2 ^ page-cluster と等しく
なります。スワップデータは 32 ページグループ内だけにまとめられて
いるので、2 ^ 5 より大きい値はスワップ用としてはあまり意味があり
ません。

==================================================================

max_map_count:

このファイルには、一つのプロセスが保持することを許されるメモリ
マップ領域の最大数が含まれています。メモリマップ領域は、malloc
呼出しの副作用として、または mmap と mprotect により直接的に、
もしくは共有ライブラリをロードしたときに使用されます。

ほとんどのアプリケーションは 1000 未満のマップ領域しか必要としま
せんが、一方で、特定のプログラム、特に malloc デバッガなどは大量
のマップ領域 (例えば一回の割当てごとに 1 つまたは 2 つのマップ領
域) を消費することがあります。

デフォルト値は 65536 です。

==================================================================

min_free_kbytes:

これは、Linux 仮想メモリサブシステムに最小限のメモリ (キロバイト
単位) をフリーにしておくことを強制するために使用されます。仮想
メモリサブシステムは、システムにおける各低位メモリ領域用の pages_min
の値を計算するために、この数値を使用します。各低位メモリ領域は、
それぞれのサイズに比例した数の予約済みフリーページを取得します。
