無料のレポートは使用されたスワップの量を偽造する

無料のレポートは使用されたスワップの量を偽造する

free によって報告された使用済みスワップは非常に高いです。

[root@rhel6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          9892       9537        354          0         71        884
-/+ buffers/cache:       8581       1310 
Swap:          767 1759218592     116869 

のように、本当に高い。

[root@bb14 blackboard]# free -g|grep Swap
Swap:            0 1717986906        114 

またはそれは?

[root@bb14 blackboard]# free -h |grep Swap
Swap:         767M       767M       114G 

さらに奇妙なことに、スワップを無効にしても、数値は依然として高いままです。

[root@rhel6 ~]# swapoff -a
[root@rhel6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          9892       9760        131          0         45        638
-/+ buffers/cache:       9076        815 
Swap:            0 1759218592     116814 

meminfo をチェックしても、swapfree が swaptotal よりも高いことが示され、混乱が軽減されることはありません。

[root@rhel6 ~]# cat /proc/meminfo|grep Swap
SwapCached:            0 kB
SwapTotal:        786428 kB
SwapFree:       120404008 kB

明らかに何かがおかしいので、私の最初の直感は再起動することですが、これはメンテナンスウィンドウなどがある実稼働マシンであり、ダウンタイムなしで何が問題なのかを見つけて修正する方法があるかどうか疑問に思っています。

答え1

解決策はアップグレードすることでしたカーネル-2.6.32-573.7.1.el6以上。

簡単yum updateな再起動だけで十分です。

以下はバグレポートの引用です。カーネル-2.6.32-573.1.1.el6.x86_64これにより、スワップフリーがスワップ合計よりも大きくなりました。

get_swap_page() ロックの以前の変更により、swap_lock スピンロックの使用が削除されました。これにより、nr_swap_pages が破損し、/proc/meminfo ファイルの SwapFree 情報が無効になり、SwapFree のサイズが SwapTotal のサイズを超える可能性があります。この更新では、nr_swap_pages にアトミック変数が使用され、/proc/meminfo の SwapFree のサイズが正確になりました。(BZ#1259362)

答え2

これは RHEL6.7 の既知の問題のようで、kernel-2.6.32-573.1.1.el6.x86_64 がプライベート Bugzilla で追跡されています。

https://access.redhat.com/solutions/1571043

関連情報