높은 스왑률 없이 스왑 활용도 급증

높은 스왑률 없이 스왑 활용도 급증

매주 토요일마다 알 수 없는 이유로 내 서버 중 하나에서 스왑 활용도가 급증하는 현상이 발생합니다. 사용 가능한 메모리가 충분하므로 이것이 반드시 문제가 되는 것은 아니지만 여전히 무슨 일이 일어나고 있는지 이해하고 싶습니다.

특히 스왑이 어떻게 20분만에 2% 사용량에서 100% 사용량으로 바뀌는지 헷갈립니다. 그러나 이런 일이 발생하더라도 스왑율은 증가하지 않는 것으로 보입니다. 서버에는 8GB 스왑 파티션이 있으므로 사용 가능한 공간을 채우려면 초당 수천 페이지의 페이지 출력 속도가 필요합니다.

또한 당시 서버 스왑을 유발할 수 있는 메모리 사용률 급증이 나타나지 않았습니다.

관찰된 행동에 대해 설명을 제공할 수 있는 사람이 있나요? 서버는 RHEL 4.8(내가 아는 이전 버전)이고 커널은 2.6.9입니다. 아래 sar의 일부 출력을 포함했습니다.

스왑 활용도는 약 20분 만에 2%에서 100%로 증가했습니다.

$ sar -r -f sa12
....
06:00:01 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
06:10:01 PM   4583856  11847032     72.10     79676    319804   8178056    207864      2.48     19816
06:20:01 PM   4720904  11709984     71.27     38840    225108   8178400    207520      2.47     19124
06:30:02 PM   4839160  11591728     70.55      1404    144948   1968152   6417768     76.53   6227068
06:40:02 PM   4827016  11603872     70.62      1640    145484     10232   8375688     99.88   8182968
06:50:02 PM   4836376  11594512     70.57       844    123304        60   8385860    100.00   8193044
07:00:01 PM   4825764  11605124     70.63       920    128108      4516   8381404     99.95   8188680
....

아래는 같은 기간의 거래소 통계입니다.

$ sar -W -f sa12
....
06:00:01 PM  pswpin/s pswpout/s
06:10:01 PM      0.00      0.00
06:20:01 PM      0.00      0.00
06:30:02 PM      0.68      0.00
06:40:02 PM      1.85      0.00
06:50:02 PM      5.07      0.00
07:00:01 PM      8.62      0.00
....

답변1

재미있는 사실: 스왑 사용량이 0에서 8GB로 증가했습니다. 동시에 디스크에 단일 바이트도 기록되지 않았습니다(sar pswpout/s는 0을 표시했습니다). 따라서 내 가정은 스왑이 할당/예약되었지만 소비/사용되지는 않는다는 것입니다.

내 추측으로는 귀하의 서버가 vm.overcommit_memory=2(읽기vm.overcommit_memory 문서,VM 오버커밋 회계). 이 경우 할당된 모든 바이트는 사용된 것으로 간주됩니다. [확인하지 않았습니다.]

이 주제를 읽고 싶을 수도 있습니다.Linux: 사용된 총 스왑 공간 = 프로세스에서 사용된 스왑 공간 + ??.

답변2

이는 귀하의 질문에 직접적으로 대답하지는 않지만 다음 스크립트는 조사에 유용할 수 있습니다. 각 프로세스가 사용하는 스왑 공간의 양을 알 수 있습니다.

스왑을 사용하는 프로세스 확인

스왑이 언제 시작될지 대략적으로 알고 있다면 해당 시간에 맞춰 이 스크립트를 실행하도록 cron을 설정할 수 있습니다.

관련 정보