free -m
total used free shared buffers cached
Mem: 15708 15539 168 124 6 6272
-/+ buffers/cache: 9260 6447
Swap: 0 1759218604 0
sysctl vm.swappiness
vm.swappiness = 0
grep Swap /proc/meminfo
SwapCached: 0 kB
SwapTotal: 0 kB
SwapFree: 36 kB
スワップを無効にするためにvm.swappiness = 0を設定しましたが、出力にはfree -m
スワップキャッシュが使用されたというメッセージが表示されます1759218604
。これは非常に大きな数値です。使用されたスワップメモリはゼロでなければならないと思います。なぜゼロではないのですか?
セントースバージョン:6.7、Linuxカーネル:2.6
答え1
これは非常に古いRHEL / CentOS 6カーネルのバグであるため、kernel-2.6.32-573.6.1.el6(またはそれ以上)に更新する必要があります。これを見てRHカスタマーポータル記事(RHアカウントが必要)そしてこれサーバー障害に関する質問詳細については。
システムのアップグレードもお勧めします。CentOS 6 はサポートされなくなりました。6.7は最新のマイナーバージョンではありません(最後のバージョンは6.10でした)。
答え2
システムがスワップを使用していません。
カーネルは使用されたスワップ量を直接追跡しないため、free
合計スワップ量と使用可能なスワップ量の差として計算されます。何らかの理由で(参照ボイテックの答え)、システムカーネルは合計0kのうち36kの利用可能なスワップ空間があると考えているので、free
-36kの使用済みスワップ空間があると計算します。ただし、符号なしの値で保存されるため、大きな整数(指定後1024にスケーリングされます-m
)で終わります。