vm.swappiness = 1ですが、RHELがまだスワップを使用しているのはなぜですか?

vm.swappiness = 1ですが、RHELがまだスワップを使用しているのはなぜですか?

RHEL 7.2メモリ使用量は次のとおりですfree -m

              total        used        free      shared  buff/cache   available
Mem:         386564       77941       57186         687      251435      306557
Swap:         13383        2936       16381

使用されたスワップスペースは2936Mであることがわかります。

だから私たちはそれを最小限に抑えたいと思います。

echo 1 > /proc/sys/vm/swappiness

sysctl -w vm.swappiness=1

echo "vm.swappiness = 1" >> /etc/sysctl.conf

10分後にもう一度確認してみると、OSはまだスワップ領域を使用していました。

free -m:

              total        used        free      shared  buff/cache   available
Mem:         386564       77941       57186         687      251435      306557
Swap:         13389        2930       16381

なぜ私たちが取らない措置がすぐに適用されるのですか?

スワップスペースをゼロにするには、OSを再起動する必要がありますか?

はい

私たちは以下を実行しますvmstat

 vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0  85740 20255872 2238248 183126400    0    0     7   162    0    0  7  1 92  0  0

vm.swappiness=1 を減らします。

10分後にvmstatを実行します。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0  85740 20255872 2238248 183126400    0    0     7   162    0    0  7  1 92  0  0

ベストアンサー1

前に申し上げたとおり(参照)なぜスワップ機能が機能しないのですか?)、変更は、swappinessメモリを解放する必要があるときにカーネルが行う将来の決定にのみ影響します。これを減らすと、カーネルは置き換えられたすべてのエントリを再ロードしません。

出力vmstatにスワップが積極的に使用されていないとマークされています。つまり現時点では、ワークロードには置き換えられたページは実際には必要ありません。

いつものようにカーネルのスワップ使用を細かく管理しようとすることは意味がありません。ワークロードに応じてページキャッシュをサポートする必要があるかどうかを判断し、swappinessそれに応じて調整してシステムを実行します。

もしあなたなら本物スワップを消去するには、スワップを無効にして再度有効にします。

swapoff -a && swapon -a

おすすめ記事