`vm.swappiness=100`にもかかわらず、ミントシステムが停止し、スワップ領域が十分に利用されない

`vm.swappiness=100`にもかかわらず、ミントシステムが停止し、スワップ領域が十分に利用されない

停止時にメモリ使用量を100%で表示するウィジェットによると、Mint 18.1システムはメモリ不足のため約10分間頻繁に停止します。システムリクエスト+」乾いた象を育てるのは退屈です「組合ができません。

スワップ優先順位を-1に設定しようとしましたが、停止の問題は解決されませんでした。

私のスワップパーティションは負荷が多く、vm.swappiness=100RAMを95%以上使用してもほとんど使用されません。強制的にスワップスペースの使用量を増やすと、停止の問題は解決されますか?それでは、どのように強制的にスワップスペースの使用量を増やすことができますか?

->free -m
              total        used        free      shared  buff/cache   available
Mem:          15874       12243         412        1255        3218        1724
Swap:         16207           5       16201

->swapon -s
Filename                Type        Size    Used    Priority
/dev/dm-3             partition 16596476    6068    -1

ここに画像の説明を入力してください。

私のシステム:

NAME="Linux Mint"
VERSION="18.1 (Sonya)"

答え1

明らかに、ここには2つの問題があります。

REISUBシーケンスが機能しないことは、SysRqが有効になっていない魔法のために発生する可能性があります。これを確認してください

cat /proc/sys/kernel/sysrq

# List of possible values in /proc/sys/kernel/sysrq:

#  0 - disable sysrq completely
#  1 - enable all functions of sysrq
#    >1 - bitmask of allowed sysrq functions (see below for detailed function description):
#      2 - enable control of console logging level
#      4 - enable control of keyboard (SAK, unraw)
#      8 - enable debugging dumps of processes etc.
#     16 - enable sync command
#     32 - enable remount read-only
#     64 - enable signalling of processes (term, kill, oom-kill)
#    128 - allow reboot/poweroff
#    256 - allow nicing of all RT tasks

クラシックREISUBの場合、4(R)+ 64(E、I)+ 16(S)+ 32(U)+ 128(B)= 244が必要です(効果は薄い象のバージョンと同じです。)BUSIERはスペルを逆にします書いたものです)。

システムの交換性の場合:期待どおりに動作します。この動作の理由は、多くのメモリ(おそらく取得するメモリの95%に相当)を使用しているためです。それからその他多くの新しいRAMが要求され、95%のほとんどが引き続き交換して戦う必要があります。

最良の方法は、より多くのメモリをインストールすることです。そうでない場合は、小規模プロセスを95%に飼育できるか、さらに40〜50%を消費する大規模プロセスを確認できるかを確認してください。このtopユーティリティは役に立ちます。

クールなソリューションで明確な交換性を追加し、システムを監視し、大きな豚が稼働しておらず、メモリスペースが大きすぎる場合は、膨大な量のメモリの割り当てと解放を開始するいくつかのプロセスを使用して、ミノーを「切断」することができます。残りのすべてのメモリに64Mを追加して64Mの小型メモリをキャッシュに入れ、割り当て遅延が指定された時間しきい値を超えるか、大容量メモリの実行が開始されるまで+128Mをキャッシュに入れます。

この回答本当にこれをしたい場合は、これが良いスタートになることができます。

答え2

要するに、交換しても役に立ちません、この問題を解決する最も効果的な方法はメモリ拡張システム環境をそのまま維持する場合。

さて、今述べた質問に答えてみましょう。

1. 「vm.swappiness=100」のメモリがスワップアウトされないのはなぜですか。

まず、Linuxでスワップがどのように機能するかを理解する必要があります。カーネルがメモリが不足していると感じた場合、状況を緩和するためにメモリを回収する方法は2つあります。

  1. 匿名ページ交換
  2. キャッシュされたページのリサイクル

'vm.swappiness'は、カーネルがメモリページをどれだけ積極的にスワップするかを制御します(より多くの匿名ページスワップまたはより多くのキャッシュされたページ回数)。

もしそうなら、別の質問があります。カーネルは交換する匿名ページをどのように決定しますか?戦略はより複雑です。コードを参照できます。ここカーネルのバージョンによって異なります。戦略を1つの文章にまとめて、活動が最も少ないページを交換してください。カーネルがスワップ可能であると考える非アクティブページがないとどうなりますか?

これがまさにシステムが思ったほど多くのメモリを交換しない理由です。

2. メモリ交換を強制するのに役立ちますか?

いいえ。そして、スワップメモリ​​を強制的に適用する一般的な方法はなく、カーネルがそれに代わるものです。

答え3

システムがノートパソコンの場合システムリクエスト追加しないと、キーが機能しない可能性があります。機能キー(次のように動作します。移動するキー)を押します。

アプリ(またはアプリグループ)が16 GB以上のRAMを占有するたびに、通常は大きすぎないアプリを見つけるのが最善です。

関連情報