/proc/sys/vm/* に関する文書 カーネルバージョン 2.2.10 (c) 1998, 1999, Rik van Riel 一般的な情報と法的宣言については、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 の値を計算するために、この数値を使用します。各低位メモリ領域は、 それぞれのサイズに比例した数の予約済みフリーページを取得します。