Der von Free gemeldete genutzte Swap ist sehr hoch.
[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
Wie,Wirklichhoch.
[root@bb14 blackboard]# free -g|grep Swap
Swap: 0 1717986906 114
Oder ist es?
[root@bb14 blackboard]# free -h |grep Swap
Swap: 767M 767M 114G
Noch seltsamer ist, dass die Zahl auch dann noch hoch bleibt, wenn ich den Swap deaktiviere.
[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
Die Sache wird nicht weniger verwirrend, wenn man Meminfo überprüft, wo Swapfree höher ist als Swaptotal.
[root@rhel6 ~]# cat /proc/meminfo|grep Swap
SwapCached: 0 kB
SwapTotal: 786428 kB
SwapFree: 120404008 kB
Offensichtlich stimmt etwas nicht und mein erster Instinkt ist, einen Neustart durchzuführen, aber dies ist eine Produktionsmaschine, was Wartungsfenster usw. bedeutet, und ich frage mich, ob es eine Möglichkeit gibt, herauszufinden, was nicht stimmt, und es möglicherweise sogar ohne Ausfallzeiten zu beheben.
Antwort1
Die Lösung war ein Upgrade aufkernel-2.6.32-573.7.1.el6oder höher.
Ein einfacher yum update
Neustart sollte alles sein, was erforderlich ist.
Nachfolgend ein Zitat aus dem Fehlerbericht vonkernel-2.6.32-573.1.1.el6.x86_64das führte dazu, dass der freie Swap größer war als der Swap-Gesamtbetrag:
Eine vorherige Änderung der get_swap_page()-Sperre entfernte die Verwendung des swap_lock-Spinlocks. Dies konnte zu einer Beschädigung von nr_swap_pages und ungültigen SwapFree-Informationen in der Datei /proc/meminfo führen, wobei die Größe von SwapFree die Größe von SwapTotal überschreiten konnte. Dieses Update verwendet eine atomare Variable für nr_swap_pages und die Größe von SwapFree in /proc/meminfo ist jetzt korrekt. (BZ#1259362)
Antwort2
Es sieht so aus, als ob dies ein bekanntes Problem in RHEL6.7 ist, wobei kernel-2.6.32-573.1.1.el6.x86_64 in deren privatem Bugzilla verfolgt wird.