まだ空き容量が多いのにスワップを使うのはなぜですか? [コピー]

まだ空き容量が多いのにスワップを使うのはなぜですか? [コピー]

2.6.18 以下の Linux Kernel(Red Hat) サーバを見ると、空きメモリは多く、一部 swap が使用されていることがわかります。私はいつもメモリが枯渇したときにスワップをオーバーフローとして考えました。約7GB(50%)の空きメモリに交換するのはなぜですか?交換の程度は60(デフォルト)です。

メモリ情報出力:

MemTotal:     16436132 kB
MemFree:       7507008 kB
Buffers:        534804 kB
Cached:        2642652 kB
SwapCached:      39084 kB
Active:        6001828 kB
Inactive:      2532028 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:     16436132 kB
LowFree:       7507008 kB
SwapTotal:     2097144 kB
SwapFree:      1990096 kB
Dirty:             236 kB
Writeback:           0 kB
AnonPages:     5353644 kB
Mapped:          45764 kB
Slab:           330660 kB
PageTables:      34020 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:  10315208 kB
Committed_AS: 14836360 kB
VmallocTotal: 34359738367 kB
VmallocUsed:    264660 kB
VmallocChunk: 34359472735 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB

ベストアンサー1

0に設定すると、使用可能なメモリがない場合にのみスワップが発生します。swappinessそれ以外の場合、アイドル期間中にカーネルはメモリをスワップします。このプロセスでは、データはメモリから削除されませんが、スワップパーティションにコピーが作成されます。

つまり、メモリ不足の状況が発生した場合、すぐにディスクに書き込む必要はありません。この場合、カーネルにはデータのコピーがあることがわかっているため、交換したメモリページを上書きできます。

このswappinessパラメーターは、デフォルトでこれを行う程度を制御します。

おすすめ記事