web-dev-qa-db-ja.com

システムの「ウォーターマーク」メモリ予約はどのくらいの大きさですか?

スワップ

このコントロールは、カーネルがメモリページをどの程度積極的にスワップするかを定義するために使用されます。値を大きくすると攻撃性が高まり、値を小さくするとスワップ量が減少します。値0は、空きページとファイルバッキングページの量が次の値より小さくなるまで、カーネルにスワップを開始しないように指示します 最高水準点 ゾーンで。

- linux-5.0/Documentation/sysctl/vm.txt

MemAvailable

スワップせずに新しいアプリケーションを開始するために利用可能なメモリの推定量。 MemFree、SReclaimable、ファイルLRUリストのサイズ、および 低透かし 各ゾーンで。この見積もりでは、システムが適切に機能するためにページキャッシュが必要であること、およびアイテムが使用されているためにすべての再生可能なスラブが再生可能であるとは限らないことを考慮しています。これらの要因の影響は、システムによって異なります。

- linux-5.0/Documentation/filesystems/proc.txt (ファイル/proc/meminfo)。

私のシステムの最低水準点と最高水準点の現在の値は何ですか?そして、それらはどのような値に関連していますか。パーセンテージで表現したいのですか?

4
sourcejedi

ウォーターマークは、/proc/zoneinfolowhighの値で、ページ単位(x86では4096バイト)で表示されます。

私の8GBシステムでは、ほとんどのページがDMA32ゾーンと通常ゾーンに分割されています。 (そして、すべてがNode 0に属しています。これは [〜#〜] numa [〜#〜] システムではないためです)。

# 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:ゾーンを構築するために新しいフィールド "managed_pa​​ges"を導入 。)

カーネルは、必要に応じて透かしを動的に増やします( boost_watermark() )。

Documentation/sysctl/vm.txtwatermark_boost_factorおよびwatermark_scale_factorによって動作を調整できます。スケール係数のデフォルトは0.1%で、ブースト係数のデフォルトはスケール係数の150%です。

私のシステムでは、透かしはminが支配的です。ゾーンごとのminウォーターマークは、min_free_kbytesから比例して設定されます。カーネルは67584のデフォルトのmin_free_kbytes値を計算しました。関連: min_free_kbytesのこの値の計算方法の説明

「ノーマル」ゾーンの最小透かしが31449ページ= 125796 KiBと表示された理由がわかりません。これはソースコードと矛盾しているようです。これまでのところ、それはバグまたはハードウェアの障害であるとしか思えません。この質問を参照してください: 私の最低水準点と最高水準点は、Documentation/sysctl/vm.txtによって予測されたものより高いようです

3
sourcejedi