Archlinux에서 스왑을 영구적으로 비활성화하는 방법은 무엇입니까?

Archlinux에서 스왑을 영구적으로 비활성화하는 방법은 무엇입니까?

내 노트북과 데스크탑에 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에서는 다음이 원하는 것을 달성해야 합니다:

  1. 특정 스왑을 사용하여 #swapoff -a스왑을 비활성화하거나 특정 장치/파일 이름을 전달합니다. 지금은 스와핑이 비활성화되어 있지만 다음 부팅 시 자동으로 다시 활성화되어 활성화됩니다.
  2. 자동 스왑 활성화를 방지하려면 systemd 장치를 사용하여 swap 을 찾으세요 #systemctl --type swap. 발견된 각 *.swap유닛에 대해 를 사용하여 마스크됩니다 #systemctl mask <unit_name>.

systemctl unmask <unit_name>이전에 보호된 장치를 실행하고 Open Swap을 사용하여 프로세스를 취소하기만 하면 됩니다 swapon.

이는 다음 두 Archwiki 기사에서 발췌한 것입니다:

답변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필요하시면 변경하시면 됩니다

관련 정보