스왑 사용량을 제한하는 방법은 무엇입니까?

스왑 사용량을 제한하는 방법은 무엇입니까?

UPS가 배터리로 전환될 때 내 컴퓨터가 자동으로 최대 절전 모드로 전환되도록 하려면 언제든지 충분한 여유 스왑 공간이 필요합니다. 하지만 스왑 파티션을 활성화하면 최대 절전 모드 직전에도 메모리 페이지가 이를 차지할 수 있습니다.

내가 찾은 유일한 해결책은 페이징을 완전히 설정 /proc/sys/vm/swappiness하고 0비활성화하는 것입니다. 그러나 그것은 최선의 선택이 아닙니다.

최대 스왑 사용량을 바이트 단위로 지정할 수 있습니까?

답변1

cat /proc/sys/vm/swappiness
0

꼭 필요한 경우(RAM이 가득 찬 경우)가 아니면 교체를 피할 수 있음을 의미합니다. Swappiness는 0-100.

/etc/sysctl.conf변경 사항을 영구 업데이트 하고 머신을 재부팅 하려면 :

vm.swappiness = 10

스왑 기능을 바이트 단위로 구성할 수는 없지만 스왑 핀은 10RAM이 90% 찼을 때 스왑이 사용된다는 의미입니다. 스왑 영역의 크기는 시스템 설치 중에 지정되므로 이를 변경하려면 파티션 크기를 조정해야 합니다. 스왑에서 차지하는 양은 실행 중인 소프트웨어의 RAM 할당 요구 사항에 따라 다릅니다.

답변2

내가 찾은 유일한 해결책은 스왑을 사용하는 것입니다파일몇 기가바이트 정도의 크기로 생성한 다음 이를 스왑 영역으로 마운트할 수 있습니다.

head -c 2G /dev/urandom > your.filename

임의의 키를 사용하여 암호화된 스왑 파일을 생성하는 코드를 아래에서 수정할 수 있습니다. 물론 $filename스왑 파일이 있는 위치로 변수를 설정해야 합니다.

filename="????"
head -c 4k /dev/urandom | sha512sum | cryptsetup open --type plain $filename /dev/mapper/swap
cryptsetup status /dev/mapper/swap
mkswap /dev/mapper/swap
swapon /dev/mapper/swap
sysctl vm.swappiness=0

편집: 재부팅 후 스왑에 액세스할 수 있도록 하려면 임의의 키를 알려진 키로 바꾸십시오.

관련 정보