rhel + 스왑 메모리가 활용되지 않는 이유

rhel + 스왑 메모리가 활용되지 않는 이유

Rhel 서버 버전 7.6이 있습니다.

스왑을 구성했으며 아래에서 스왑 크기를 볼 수 있습니다.

 free -g
              total        used        free      shared  buff/cache   available
Mem:             38          32           0           0           4           4
Swap:            23           0          23

또한 다음과 같이 vm.swappiness를 구성했습니다.

 sysctl -a | grep swap
vm.swappiness = 95

내가 아는 한, 사용 가능한 메모리가 1-5G와 같이 몇 기가바이트의 여유 메모리에 도달하면

그런 다음 스와핑이 트리거되어야 하며 예를 들어 총 5-10G의 스왑 메모리가 있을 것으로 예상됩니다.

하지만 그런 일이 일어났어

그렇다면 내 서버에서 또 무엇을 확인해야 할까요?

스와핑을 비활성화하는 다른 구성이 있을까요?

무료일 때 업데이트

free -g
              total        used        free      shared  buff/cache   available
Mem:             11           8           0           0           2           2
Swap:            23           0          23
# free
              total        used        free      shared  buff/cache   available
Mem:       11828240     8810264      161388       24696     2856588     2555472
Swap:      24575992        5120    24570872

답변1

언제vm.swappiness100으로 설정하면 메모리 부족을 처리할 때 페이지 캐싱과 스와핑이 동일하게 고려됩니다. 100보다 작은 값은 스와핑이 페이지 캐시보다 비용이 더 많이 든다는 것을 커널에 알려주므로 페이지를 해제해야 할 때 스왑을 사용하는 대신 페이지 캐시에서 페이지를 해제하려고 시도합니다. 값이 낮을수록 교환 비용이 커집니다. (계산은 내가 여기서 설명하는 것보다 더 복잡하지만, 여기서 무슨 일이 일어나고 있는지 이해할 수 있을 만큼 비슷해야 합니다.)

귀하의 경우 페이지 캐시보다 약간 더 비싸도록 스왑을 구성했습니다. 모든 페이지 캐시 사용량은 회수 가능합니다(반올림 오류 내에서). "사용 가능" 값은 "버프/캐시" 값과 같습니다. 따라서 메모리 부족으로 인해 스왑 영역을 사용하는 대신 페이지 캐시가 회수됩니다.

서버에는 아무런 문제가 없으며 예상대로 작동합니다. 장기적으로는 스왑 사용량이 증가하는 것을 볼 수 있습니다. vm.swappiness더 많이 사용하려면 100으로 설정하세요 .

당신은 또한 볼 수 있습니다왜 스왑 기능이 작동하지 않나요?

관련 정보