使用免费报告的交换是非常高的。
[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
显然有些东西是不可靠的,我的第一本能是重新启动,但是这是一个生产机器,意味着维护窗口等,我想知道是否有任何方法来找出什么是错的,甚至可能修复它没有宕机。
解决scheme是升级到kernel-2.6.32-573.7.1.el6或更高版本。
一个简单的yum update和重新启动应该是所需要的。
下面是kernel-2.6.32-573.1.1.el6.x86_64错误报告引起Swap空闲大于交换总计的报价:
get_swap_page()locking中的先前更改删除了swap_lock螺旋锁的使用。 这可能会导致/ proc / meminfo文件中的nr_swap_pages损坏和无效的SwapFree信息,其中SwapFree的大小可能会超过SwapTotal的大小。 此更新使用nr_swap_pages的primefacesvariables,并且/ proc / meminfo中的SwapFree的大小现在是正确的。 (BZ#1259362)
看起来这是RHEL6.7中的一个已知问题,kernel-2.6.32-573.1.1.el6.x86_64在其私人bugzilla中被跟踪。