free 报告的 swap 使用率非常高。
[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
显然有些东西很不稳定,我的第一反应是重新启动,但这是一台生产机器,这意味着维护窗口等,我想知道是否有任何方法可以找出问题所在,甚至可以在不停机的情况下修复它。
解决方案是升级到kernel-2.6.32-573.7.1.el6或更高版本。
只需简单
yum update
的重启即可。以下是kernel-2.6.32-573.1.1.el6.x86_64导致 Swap free 大于 swap 总数的错误报告的引述:
看起来这是 RHEL6.7 中的一个已知问题,kernel-2.6.32-573.1.1.el6.x86_64 在他们的私人 bugzilla 中被跟踪。
https://access.redhat.com/solutions/1571043