100% 사용된 스왑과 60%의 사용 가능한 RAM을 갖춘 Linux 상자 - 정상입니까?

100% 사용된 스왑과 60%의 사용 가능한 RAM을 갖춘 Linux 상자 - 정상입니까?

최근에 스왑에서 사용되지 않은 정확히 0바이트가 있는 상자(실제로는 웹 서버 VM)를 보았습니다. 반면 사용 가능한 RAM(무료는 아니지만 무료+버퍼+캐시 합계)은 전체의 60%입니다. VM 램. 이전에는 본 적이 없으므로 이것이 좋은 구성인지 궁금합니다(박스 및 애플리케이션용).

VM 관리자는 이를 완전히 정상적인 것으로 간주하며 이것이 상자를 조정하는 일반적인 방법이라고 말했습니다.

그의 생각은 상자에 콜드 램 페이지가 많으면 커널이 데이터를 캐시하는 데 사용할 수 있도록 "실제" 램 페이지를 확보하기 위해 이를 분리한다는 것이었습니다.

저는 빠른 상자를 갖고 싶을 때 마지막으로 사용하는 것이 스왑인지 알고 있었습니다. 그래서 저는 swappiness를 더 낮은 값으로 설정하곤 했습니다(그래서 커널은 페이지 교체를 좋아하지 않습니다). 그러나 이 사람의 접근 방식은 우리가 가진 스왑 공간만큼 많은 데이터를 교체하여 더 많은 캐시를 갖는 것이 좋다는 것이었습니다. 그리고 그렇습니다. 커널은 스왑된 페이지도 캐시할 수 있으므로 스왑을 자유롭게 유지하는 것은 아무 소용이 없다고 말했습니다.

이에 대해 안심하시기 바랍니다. 커널 디스크 캐시를 보다 효과적으로 사용할 수 있도록 VM seap을 최선으로 사용해야 하며 RAM을 이런 방식으로 해제해야 합니까?

정확하게 말하면 현재 1Gb의 스왑 공간(100% 사용), VM에는 32Gb의 RAM이 있고 사용 가능한 RAM은 13Gb였습니다.

답변1

소량의 스왑(32GiB RAM에 비해 1GiB는 작음)을 완전히 사용하는 것은 괜찮습니다. 이것이 의미하는 바는 정확히 VM 관리자가 설명한 것과 같습니다. RAM의 가용성을 고려할 때 스왑으로 끝나는 모든 것은 사용되지 않으며 이를 유지하고 활성 워크로드이든 더 긴급한 목적을 위해 해당 물리적 ​​메모리를 사용하는 것이 좋습니다. 디스크 캐시.

과도한 스왑 사용은 스왑 양이 많거나 메모리 부족으로 인해 페이지가 스왑되는 경우에만 문제가 되며, 더 중요하게는 스왑이활동중요하다,if는 vmstat페이지가 항상 교체되고 교체되는 것을 보여줍니다. 이는 시스템이 스래싱되고 있으며 페이지를 다시 교체하기 위해 페이지를 제거하는 데 시간을 소비하고 있음을 나타냅니다. 이는 RAM의 양이 시스템 작업 부하에 비해 너무 작을 때 발생합니다.

내가 이 글을 쓰고 있는 시스템은 약간 더 많은 스왑을 갖고 있으며 VM과 비슷한 상황에 있습니다.

$ free -m
              total        used        free      shared  buff/cache   available
Mem:          32054       19405        1098        2365       11550        9827
Swap:          6410        6410           0

그러나 대화형 성능은 양호하며 vmstat스왑 활동이 표시되지 않습니다.

관련 정보