증상서버 시스템에서 Swap 크기를 확인 할 때 아래와 같이 보유한 스왑 크기보다 훨씬 큰 비 정상적인 수치가 표시 됩니다.

$ free
             total       used       free     shared    buffers     cached
Mem:      65944564   42388800   23555764         48    3281272   30509248
-/+ buffers/cache:    8598280   57346284

cat /proc/meminfo | grep ^Swap
SwapCached:         1380 kB
SwapTotal:       2096124 kB
SwapFree:       77770336 kB

원인

커널의 get_swap_page()와 관련된 수정 사항에서 스핀락(swap_lock)이 제거 되었는데 이로 인해서 nr_swap_pages 오류와 /proc/meminfo의 오류를 야기하게 되었습니다.

대상

  • RHEL/CentOS 6.7
  • kernel-2.6.32-573 버전 계열

해결 방법

커널 코드에 의한 버그이기 때문에 (BZ#1252362) 커널 버전을 RHEL/CentOS 6.8의 베이스 커널인 2.6.32-642 이상으로 업데이트 해주면 됩니다.

상기 버그에 대한 수정 내용은 6.8 릴리즈노트에 소개되어있습니다.