4 개의 Tomcat 서버가 실행되는 8GB RAM Linux 상자가 있습니다. 그중 하나는 3000MB 메모리 (jvm -Xms 및 -Xmx 설정)로 설정되고 다른 하나는 1500MB로 설정됩니다. 스왑 파티션도 8Gigs로 설정되어 있습니다. 이 서버를 시작할 때 스왑 파일 사용량이 적습니다. 그러나 일정 기간 동안 그리고 서버 중 하나 / 모든 서버가 최대 활동 상태 인 특정 시간 동안 스왑 사용량이 증가하기 시작합니다. 전형적인 sar -r 출력은 다음과 같습니다.
kbmemfree kbmemused % memused kbbuffers kbcached kbswpfree kbswpused % swpused kbswpcad
48260 8125832 99.41 196440 2761852 7197688 1190912 14.20 316044
75504 8098588 99.08 198032 2399460 7197688 1190912 14.20 316032
현재 사용 된 14.2 % 스왑을 보여줍니다. 재미있는 점은이 비율이 절대 감소하지 않는다는 것입니다 . 그것은 계속 증가하고 30-40 %까지 도달합니다 . 매주 서버를 다시 시작합니다.
최대 활동 기간 동안 % swpused 가 증가하고 활동이 적은 기간 동안 감소 한다고 가정합니다 . 또는 최소한 일정하게 유지됩니다. 이것은 OS가 스왑 공간을 다시 확보하지 못하는 것처럼 보입니다.
free 출력 : free -m 총 사용 된 free shared buffers 캐시 Mem : 7982 7937 45 0 32 2088-/ + 버퍼 / 캐시 : 5816 2166 스왑 : 8191 1163 7028
따라서 최소 2g의 무료 램이 있습니다. 문제는 왜 스왑 공간이 계속 증가하고 OS에 의해 재생되지 않는 것입니까? 또는 무엇이 문제가되는지 알아 내기 위해 이것을 디버깅하는 방법 ..