내 노트북과 데스크탑에 Archlinux x86_64가 설치되어 있습니다. 설치할 때 fdisk를 사용하여 스왑 파티션을 만들고 sudo swapon /dev/sda3
.
sysctl vm.swappiness
그러나 으로 설정 하더라도 0
시스템 메모리가 절반만 사용되면 시스템은 여전히 스왑 파티션에 쓰고 있으며 이때 큰 파일을 어딘가에 복사/이동하여 시스템 속도를 매우 느리게 만듭니다. 이 경우에는 off swap 을 사용했습니다 sudo swapoff /dev/sda3
.
요즘에는 보통 부팅 후 스왑을 끄고 스왑이 정말 필요할 때 활성화합니다(그리고 RAM 사용량을 모니터링하고 필요할 때 스왑을 켜는 Ruby 스크립트가 있습니다). 다음 부팅 시 스와핑이 다시 활성화됩니다. 문제의 교환 항목이 없습니다 /etc/fstab
.
장치를 삭제하지 않고 스왑 장치를 영구적으로 비활성화할 수 있는 방법이 있습니까?
답변1
이것건축 위키피디아Archlinux에서의 스와핑은 systemd에 의해 관리된다는 점을 언급하고 스와핑을 담당하는 systemd 장치를 차단하여 자동 활성화를 비활성화하는 방법을 설명했습니다. 따라서 Archlinux에서는 다음이 원하는 것을 달성해야 합니다:
- 특정 스왑을 사용하여
#swapoff -a
스왑을 비활성화하거나 특정 장치/파일 이름을 전달합니다. 지금은 스와핑이 비활성화되어 있지만 다음 부팅 시 자동으로 다시 활성화되어 활성화됩니다. - 자동 스왑 활성화를 방지하려면 systemd 장치를 사용하여 swap 을 찾으세요
#systemctl --type swap
. 발견된 각*.swap
유닛에 대해 를 사용하여 마스크됩니다#systemctl mask <unit_name>
.
systemctl unmask <unit_name>
이전에 보호된 장치를 실행하고 Open Swap을 사용하여 프로세스를 취소하기만 하면 됩니다 swapon
.
이는 다음 두 Archwiki 기사에서 발췌한 것입니다:
- ArchWiki: 스왑: 스왑 비활성화
- ArchWiki: Systemd: 단위 사용하기(차단 및 차단 해제 섹션 참조)
답변2
/lib/systemd/system/turnswapoff.service
다음 내용이 포함된 파일을 생성하여 systemd에 이 작업을 수행하도록 요청할 수 있습니다.
[Unit]
Description=Turn swap off
[Service]
ExecStart=/sbin/swapoff -a
[Install]
WantedBy=multi-user.target
시작 시 실행되는지 확인하세요.sudo systemctl enable turnswapoff
위치가 swapoff
아닐 수도 있습니다 /sbin/swapoff
. 확인하시고 which swapoff
필요하시면 변경하시면 됩니다