O swap utilizado relatado pelo Free é muito alto.
[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
Como,realmentealto.
[root@bb14 blackboard]# free -g|grep Swap
Swap: 0 1717986906 114
Ou é?
[root@bb14 blackboard]# free -h |grep Swap
Swap: 767M 767M 114G
Ainda mais estranho, mesmo se eu desabilitar a troca, o número ainda permanecerá alto.
[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
As coisas não ficam menos confusas ao verificar o meminfo, que mostra swapfree maior que swaptotal.
[root@rhel6 ~]# cat /proc/meminfo|grep Swap
SwapCached: 0 kB
SwapTotal: 786428 kB
SwapFree: 120404008 kB
Obviamente, algo está errado e meu primeiro instinto é reiniciar, mas esta é uma máquina de produção, o que significa janelas de manutenção, etc., e estou me perguntando se há alguma maneira de descobrir o que está errado e possivelmente até consertá-lo sem tempo de inatividade.
Responder1
A solução foi atualizar parakernel-2.6.32-573.7.1.el6ou mais alto.
Uma simples yum update
reinicialização deve ser suficiente.
Abaixo está uma citação do relatório de bug dekernel-2.6.32-573.1.1.el6.x86_64que fez com que o Swap livre fosse maior que o total do swap:
Uma alteração anterior no bloqueio get_swap_page() removeu o uso do spinlock swap_lock. Isso pode causar corrupção de nr_swap_pages e informações inválidas de SwapFree no arquivo /proc/meminfo, onde o tamanho de SwapFree pode exceder o tamanho de SwapTotal. Esta atualização usa uma variável atômica para nr_swap_pages, e o tamanho de SwapFree em /proc/meminfo agora está correto. (BZ#1259362)
Responder2
Parece que este é um problema conhecido no RHEL6.7 com kernel-2.6.32-573.1.1.el6.x86_64 sendo rastreado em seu bugzilla privado.