システムが遅延して負荷が激しい場合、RAM使用量は75%を超えません。

システムが遅延して負荷が激しい場合、RAM使用量は75%を超えません。
Linux matrix 5.15.2-xanmod1-1 #1 SMP Wed, 17 Nov 2021 02:36:25 +0000 x86_64 GNU/Linux
NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                           
├─sda1 btrfs        swap  477dd81e-6a88-4987-b830-47bea1ec1f5d       0    87% /swap
└─sda2 btrfs        root  2067df62-8ff6-4b52-9814-e4d5d8cf1577   55.3G    48% /
zram0                                                                         [SWAP]
               total        used        free      shared  buff/cache   available
Mem:           1.8Gi       1.2Gi       111Mi        56Mi       557Mi       446Mi
Swap:          5.5Gi       1.6Gi       3.9Gi

vm.swappiness = 10

したがって、私の問題は、システムに負荷がかかる場合、つまりFirefoxで開いたタブが多すぎるか、vscodeとFirefoxを同時に実行すると、システムが非常に遅くなることです。

ところでRAMの使用量を確認してみると、75%にとどまり、それ以上に上がりません。したがって、未使用のRAMの25%があります。

交換する前により多くのメモリを使用させるにはどうすればよいですか?

答え1

まず、速度の低下が完全なためであると仮定しますRAMが、これは必ずしも根本的な原因ではありません。理論的には、数が多い、またはI/OCPUが多すぎると予想するなど、速度低下を引き起こす可能性がある他の原因とボトルネックが必要です。processes原因がメモリであると判断する前に、まず他の原因を除外する必要があります。次のコマンドを使用できますvmstat

$ vmstat -w 1 
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
 r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st
 0  0            0    120951240         9412      8313416    0    0     0     2    0    0   0   0 100   0   0
 0  0            0    120951248         9412      8313416    0    0     0     0  143  210   0   0 100   0   0
 0  0            0    120950980         9412      8313416    0    0     0    20  116  238   0   0 100   0   0
 0  0            0    120950980         9412      8313416    0    0     0     0  180  315   0   0 100   0   0
 0  0            0    120951232         9412      8313416    0    0     0     0  145  285   0   0 100   0   0

()または()セクションの下に比較的高い数字が表示されている場合は、swapシステムがメモリページを交換していることを示します。値が低いと、速度が遅くなる理由が異なる可能性があります。 、または)。siswap insoswap outRAMswapprocsiocpu

swap in/outに高い値があると仮定すると、vmstatボトルネックが実際にRAM満たされていることを示します。

swappinessからの説明ですLinuxカーネルドキュメント:

交換性

このコントロールは、カーネルがメモリページをどれだけ積極的に交換するかを定義します。値が高いほど攻撃性が増加し、値が低いほど交換量が減少します。値が 0 の場合、使用可能なページおよびファイル・サポート・ページの数が、その領域の最高水位表示よりも小さくなるまでスワップを開始しないようにカーネルに指示します。

デフォルトは60です。

まず、swappiness値(10)がデフォルト値(60)よりはるかに低いことに注意してください。

firefoxタブがたくさんあるとしましょう。ほとんどはアイドル状態で、あまり使用されていません。低い場合、swappinessマシンはできるだけ多くのデータをRAMに保持しようとし、RAMが出るまで交換を避けます。本物新しいページのためにいくつかのメモリを空にする必要があります。これは、システムが必要な場合にのみスワップを開始し、遅すぎるため、前のメモリページがスワップされるまで若干の遅延が発生することを意味します。

この値がswappiness高い場合、システムは以前のメモリページと利用可能なメモリページをより頻繁に早期に交換し、新しいページでより多くのメモリを使用できるようにします。このタブに再びアクセスすると、ディスクからRAMにメモリがページングされるため、速度が遅くなる可能性がありますが、これらのタブを頻繁に使用しないため、スワップ状態に保ち、新しいプロセスのために保存することで、より多くの空きメモリを確保することをお勧めします。ページ。

swappinessメモリが制限に達したときだけでなく、古くて未使用のメモリページをより頻繁に交換するようにページ数を増やすことをお勧めします。

関連情報