AlmaLinux 8 또는 CentOS 7에서 vm.swappiness=0은 스왑이 완전히 비활성화되었음을 의미합니까?

AlmaLinux 8 또는 CentOS 7에서 vm.swappiness=0은 스왑이 완전히 비활성화되었음을 의미합니까?

vm.swappiness=1수년 동안 sysctl.conf에서 사용 가능한 RAM이 충분함에도 불구하고(캐시 측면에서 거의 꽉 찼을 수 있으며 일반적으로 여전히 4GB의 여유 공간이 있지만 "사용 가능"은 여전히 ​​꽤 무료임) 스왑 영역이 계속 사용되는 문제가 있었습니다 . 때로는 거의 가득 찼습니다.

나는 스왑을 전혀 사용하고 싶지 않습니다.꼭 필요한.

난 방금 읽었어2019년의 이 답변에서저것:

swappiness=0은 가능한 한 오랫동안 물리적 메모리에서 프로세스를 스와핑하지 않도록 커널에 지시합니다.

그러나 나는 또한 읽었습니다.이 2012 답변에서저것:

교환성=0:

  • 커널 버전 3.5 이상: 교환성을 비활성화합니다.
  • 3.5 이전 커널 버전: 가능하면 실제 메모리에서 프로세스를 교체하지 마십시오.

그래서 혼란스럽습니다... vm.swappiness=0스왑을 완전히 비활성화해야 할까요, 아니면 꼭 필요할 때 스왑을 계속 사용해야 할까요?

내 서버의 커널 버전:

  • 4.18(알마리눅스 8)
  • 3.10(센트OS 7)

답변1

스왑을 완전히 비활성화하는 유일한 방법은 처음부터 스왑을 설정하지 않는 것입니다.

0으로 설정하면 vm.swappiness커널은 최후의 수단으로만 스왑을 사용합니다.현재는 다음과 같이 기록됩니다.

값이 0이면 커널은 사용 가능한 페이지 및 파일 지원 페이지 수가 해당 영역의 최고 워터마크보다 작아질 때까지 스왑을 시작하지 않습니다.

내가 아는 한, swappiness0으로 설정해도 스왑이 완전히 비활성화되지는 않으므로 필요한 경우 두 환경 모두에서 스왑이 사용되는 것을 볼 수 있습니다.

답변2

적어도 생각하는 방식과는 다르게 스왑을 완전히 비활성화하지는 않습니다. 시스템을 최대 절전 모드로 전환하면 스왑이 사용됩니다. 시스템을 재부팅하면 일부 스왑 공간이 아직 사용 중임을 알 수 있습니다. 나는 며칠 전에 이것을 발견했습니다. 스왑을 사용하지 않도록 swappiness설정했는데 시스템 0을 다시 활성화했을 때 스왑이 여전히 512K를 사용하고 있는 것을 발견했습니다. 이것은 에 있습니다 5.14.21.

관련 정보