RAM에 캐시가 가득 차 있는데 시스템이 스왑을 사용하는 이유는 무엇입니까?

RAM에 캐시가 가득 차 있는데 시스템이 스왑을 사용하는 이유는 무엇입니까?

저는 openSUSE TW, 32 GiB RAM, 64 GiB 스왑(SSD)을 실행하고 있습니다.

RAM이 캐시로 완전히 채워질 때까지 스왑 공간 사용량은 0입니다.

나는 그것을 모니터링하기 위해 htop을 사용하고 있습니다. 노란색/주황색 = 캐시

내 시스템은 2GiB의 RAM을 사용하지만 나머지(30GiB)는 캐시입니다. 그런 다음 다른 데이터를 위한 공간을 확보하기 위해 필요할 때 일부 캐시를 버리는 대신 몇 MiB에 불과한 스왑을 사용하기 시작합니다. 하지만 맹세컨대 약간의 정지 현상이 느껴지고 시스템이 때때로 눈에 띄게 느려집니다.

왜 그런 겁니까? 어떡해?

나는 요청된 정보를 기꺼이 제공할 것입니다.


vmstat 60 5 vmstat 60 5

vm.swappiness = 1
vm.dirty_ratio = 20
vm.dirty_background_ratio = 10

답변1

교환성을 0으로 설정할 수 있습니다. Linux 문서에는 다음과 같이 나와 있습니다.

"이 컨트롤은 커널이 메모리 페이지를 얼마나 적극적으로 스왑하는지 정의하는 데 사용됩니다(sic). 값이 높을수록 공격성이 증가하고 값이 낮을수록 스왑 양이 감소합니다. 값이 0이면 커널이 다음까지 스왑을 시작하지 않도록 지시합니다. 무료 및 파일 백업 페이지의 양이 해당 영역의 최고 워터마크보다 적습니다.

기본값은 60입니다. "

swappiness를 0으로 설정한다고 해서 스와핑이 완전히 제거되는 것은 아니며 조건부 스와핑이 계속 수행됩니다.

그런데 교환하는데 문제가 있는 걸까요? 제 생각에는 거의 사용되지 않는 페이지 몇 개만 교체할 가치가 있다고 생각합니다. 스왑에 문제가 있는지 확인하려면 vmstat 60잠시 실행한 후 si합계 so열을 살펴보세요. 대부분의 경우 0인 것을 알 수 있습니다. 또한 귀하의 열은 swpd크게 변경되지 않을 것입니다. 이는 교체가 문제가 되지 않음을 의미합니다.

swapoff현재 수행 중인 작업을 수행할 만큼 충분한 메모리가 있고 특정 이유(스왑 공간)로 인해 스왑 공간을 사용하고 싶지 않은 경우가 있습니까?

이러한 매개변수를 사용하면 시스템이 정지되는 경우 스와핑으로 인한 것이 아닐 가능성이 높습니다. 물론, 출력의 4개 열과 si열의 so높이 vmstat가 크지 않은 경우는 제외됩니다.

- 편집하다 -

출력 vmstat결과에는 여러 페이지가 교체되었음을 나타냅니다. 큰 교체는 발생하지 않으므로 걱정할 필요가 없습니다. 물론 시스템이 정지될 만큼 충분하지는 않습니다.

관련 정보