交換性
このコントロールは、カーネルがメモリページをどれだけ積極的に交換するかを定義します。値が高いほど攻撃性が増加し、値が低いほど交換量が減少します。値が 0 の場合、使用可能なページとファイルサポートページの数が次の値より少なくなるまでカーネルがスワッピングを開始しないように指示します。トップ透かし地域で。
-linux-5.0/documentation/sysctl/vm.txt
利用可能なメモリ
スワップなしで新しいアプリケーションを起動するために使用できるメモリ量を見積もります。 MemFree、SReclaimable、ファイルLRUリストサイズ、低い透かしあらゆる分野で。この見積もりは、システムが正常に動作するためにいくつかのページキャッシングが必要であること、およびプロジェクトが使用されているときにすべての回収可能スラブが回収可能ではないことを考慮しています。これらの要因の影響はシステムによって異なります。
-linux-5.0/documentation/filesystem/proc.txt(文書
/proc/meminfo
)。
私のシステムの現在の低透かしと高透かしの値は何ですか?たとえば、パーセンテージで表現するには、どの値に基づいていますか?
答え1
透かしは、low
ページ(x86 ベースで 4096 バイト)に表示される値の合計です。high
/proc/zoneinfo
私の8GBシステムでは、ほとんどのページはDMA32領域と一般領域に分かれています。 (すべてがノード0に属します。沼システム)。
# cat /proc/zoneinfo
Node 0, zone DMA
...
pages free 3961
min 33
low 41
high 49
spanned 4095
present 3996
managed 3961
...
Node 0, zone DMA32
pages free 139960
min 7184
low 8980
high 10776
spanned 1044480
present 888973
managed 866327
...
Node 0, zone Normal
pages free 33907
min 31449
low 33868
high 36287
spanned 1173504
present 1173504
managed 1140349
...
透かしは比例しますmanaged
。
通常、私のシステムの透かしは1%から3%の間です。
バラより__setup_per_zone_wmarks()。 (返品free_area_init_core()、set_dma_reserve()と提出mm:構造領域に新しいフィールド「management_pages」を導入します。.)
カーネルは動的に透かしを追加できます(ブースト_透かし())必要ならば。
動作は次のように調整できwatermark_boost_factor
ますwatermark_scale_factor
。ドキュメント/sysctl/vm.txt。倍率係数のデフォルト値は0.1%、拡張係数のデフォルト値は倍率係数の150%です。
min
私のシステムでは、ほとんどの地域のmin
透かしに比例して透かしが設定されていますmin_free_kbytes
。カーネルはデフォルト値min_free_kbytes
67584を計算します。関連:min_free_kbytes
この値を計算する方法を説明してください。。
「一般」領域の最小透かしがなぜ31449ページ= 125796KiBと表示されるのかわかりません。これはソースコードと矛盾するようです。これまでは、これがバグやハードウェアエラーだとしか考えられません。この質問を見てください:私の最低および最高の透かしがDocumentation/sysctl/vm.txtの予測より高いようです。