メモリがいっぱいになる関連の競合を避けるために、SSDスワップを使用してください。 SSDで実行できる削除の数は制限されています。メモリ関連の競合は停止しましたが、私のシステムはvmstat
ほぼすべての期間スワップを継続的に使用し、si etc != 0を表示します。私は/etc/sysctl.conf
スワップ使用量を減らし、ダンプキャッシュへの負担を増やすためにアプローチを変更しましたが、利用可能なメモリがGBの場合はまだfind swapを使用します。
スワップ使用量を減らすためにいくつか変更しました。
$ cat /proc/sys/vm/swappiness
1
$ cat /proc/sys/vm/vfs_cache_pressure
200
キャッシュに強制的に置き換える一時的な解決策は次のとおりです。Ubuntuについて質問するただし、メモリを積極的に監視しない場合は機能しません。
オペレーティングシステム:Pop 20.04フォーカス、カーネル:x86_64 Linux 5.11.0-7612-generic
答え1
より深く掘り下げることを提案します潜在的な問題、あなたの問題本物解決策やその他の解決策を試してください。それ質問。あるいは、少なくともオペレーティングシステムがスワップスペースを利用する方法をよりよく理解してください。
多くの人は、SWAPスペースが空きRAMを使用できる場合にのみ使用されると誤って考えています。必要。一般的に言えば(Linuxカーネルについてはわかりません!)スワップスペースを持つオペレーティングシステムは、最近使用されていないと思われるRAMブロックを置き換えます。訪問した: スワップが正しいことを確認するアルゴリズムがほとんどない必要RAMがいっぱいであるため、最近RAMを使用していない場合にのみ期限切れになります。訪問した。したがって、一定期間システムをアイドル状態にし、システムがアイドル状態であり、一部のプログラムがメモリ空間の一部にアクセスしないため、RAMにアクセスできない場合、オペレーティングシステムはそのRAMがあるにもかかわらずそのRAMの一部を交換します。まだ空きメモリが十分です。
この質問はこれを示しています。Ubuntuに尋ねる、ユーザーはオペレーティングシステムが数日間システムをアイドル状態にしてスペースを交換するためにほとんどのRAMを交換した後、システムを再利用してからしばらくのシステムパフォーマンスが低下する現象を経験し、オペレーティングシステムは使用されたRAMを回復しようとします。 /アクセスされたメモリブロックRAMは定期的に再アクセスされます。
1つのアプローチ(可能な場合)は、SSDをスワップスペースとしてまったく使用しないことです。私のデスクトップには、私が使用するスワップパーティションを持つ古い500GBの非SSDハードドライブがあります。
もう一つのアプローチはパフォーマンストレードオフです。毎分実行され、RAM使用量を確認するスクリプトのcronジョブを作成します。 RAM使用量が60%を超える場合swapon
(適切なパラメータと一緒に)、スワップを使用してください。文書必要に応じて。 RAM使用率が40%未満に低下すると、スワップファイルswapoff
の使用が無効になり、オペレーティングシステムが物理RAMにスワップを「ドレーニング」することがあります。もちろん、有効/無効にするには、以前に作成され、適切に初期化されたスワップファイルが必要です。 (しきい値を異なるようにします。同じ値(50%など)に設定すると、次の問題が発生します。勝つRAM 使用量が 50% の真上から 50% 直下の間を跳ねるとき。通常、システムの使用方法に応じてこれらの値を微調整してください。 )
私は他の人が異なる方法とスキルを使用していると確信しています。同様に、SSDドライブの使用が増加するにつれて必要な場合を除き、SSDベースのスワップパーティションの使用を減らすためにカーネルアルゴリズムを変更することができます。