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.swappiness
100으로 설정하면 메모리 부족을 처리할 때 페이지 캐싱과 스와핑이 동일하게 고려됩니다. 100보다 작은 값은 스와핑이 페이지 캐시보다 비용이 더 많이 든다는 것을 커널에 알려주므로 페이지를 해제해야 할 때 스왑을 사용하는 대신 페이지 캐시에서 페이지를 해제하려고 시도합니다. 값이 낮을수록 교환 비용이 커집니다. (계산은 내가 여기서 설명하는 것보다 더 복잡하지만, 여기서 무슨 일이 일어나고 있는지 이해할 수 있을 만큼 비슷해야 합니다.)
귀하의 경우 페이지 캐시보다 약간 더 비싸도록 스왑을 구성했습니다. 모든 페이지 캐시 사용량은 회수 가능합니다(반올림 오류 내에서). "사용 가능" 값은 "버프/캐시" 값과 같습니다. 따라서 메모리 부족으로 인해 스왑 영역을 사용하는 대신 페이지 캐시가 회수됩니다.
서버에는 아무런 문제가 없으며 예상대로 작동합니다. 장기적으로는 스왑 사용량이 증가하는 것을 볼 수 있습니다. vm.swappiness
더 많이 사용하려면 100으로 설정하세요 .
당신은 또한 볼 수 있습니다왜 스왑 기능이 작동하지 않나요?