무료로 보고된 스왑 사용률이 매우 높습니다.
[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
swaptotal보다 swapfree가 더 높게 표시되는 meminfo를 확인할 때 상황이 덜 혼란스러워지지 않습니다.
[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
이는 kernel-2.6.32-573.1.1.el6.x86_64가 개인 버그질라에서 추적되는 RHEL6.7의 알려진 문제인 것 같습니다.