解決策 1:
通常の Linux メモリ制御スワップを、実際に使用されるものに許可することをお勧めします。
私が考えられる唯一のことは、スワップをオフにしてから再度オンにすることです
sudo swapoff -a
sudo swapon -a
これは、スワップにすべてを格納するのに十分な予備の物理メモリがあることを前提としています...
解決策 2:
0 から 100 までの数値を /proc/sys/vm/swappiness
にエコーするように調整できます .
このコントロールは、カーネルがメモリ ページをどの程度積極的にスワップするかを定義するために使用されます。高い値は攻撃性を高め、低い値はスワップの量を減らします .値 0 は、空きページとファイルでバックアップされたページの量がゾーンの最高水準点を下回るまでスワップを開始しないようにカーネルに指示します。
デフォルト値は 60 です。
解決策 3:
Linux はメモリを適切に管理しており、その邪魔をするべきではありません。 vm.swappiness 設定 (前述) は邪魔になりません。他の方法で行うと、奇妙な問題が発生する可能性が高くなります。
メモリを大量に消費するものを何を起動しましたか?チューニングできますか?独自のメモリ制限ディレクティブがない場合は、ulimit も確認できます。
解決策 4:
すべてのアプリケーションで使用できるメモリがある場合は、swappiness を 0 に設定してスワップ アウトしないようにしても問題ありません。たとえば、qemu-kvm は、ほとんどの場合アイドル状態に「見える」ため、VMM がスワップ アウトする大きなターゲットです。 qemu-kvm メモリのメモリの最大 80% がスワップに書き込まれるのを見てきました。 qemu-kvm で実行されている VM は、スワップが不足しているため、ほとんど応答しなくなります (ただし、ゲストはこれが発生していることを知りません)。ゲスト VM は、実際にはひどく引きずられていても、最も優れたパフォーマンスを発揮していると考えます。多数の VM が「起動」して処理を開始すると、十分な高速メモリとディスクを備えたエンタープライズ グレードのハードウェアであっても、平均負荷が 30 を超えることがあります。これは、すぐに使える qemu-kvm 設計の失敗だと思います。
これが誰かの役に立てば幸いです。