私のシステムの「透かし」メモリ予約はどのくらいですか?

私のシステムの「透かし」メモリ予約はどのくらいですか?

交換性

このコントロールは、カーネルがメモリページをどれだけ積極的に交換するかを定義します。値が高いほど攻撃性が増加し、値が低いほど交換量が減少します。値が 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_kbytes67584を計算します。関連:min_free_kbytesこの値を計算する方法を説明してください。

「一般」領域の最小透かしがなぜ31449ページ= 125796KiBと表示されるのかわかりません。これはソースコードと矛盾するようです。これまでは、これがバグやハードウェアエラーだとしか考えられません。この質問を見てください:私の最低および最高の透かしがDocumentation/sysctl/vm.txtの予測より高いようです。

おすすめ記事