Swap

이 페이지는 gnu/Linux 에서 스왑 공간 및 페이징에 대한 소개를 제공합니다. 스왑 파티션 및 스왑 파일의 생성 및 활성화를 다룹니다.

Linux 스왑 공간에 관한 모든 것:

Linux 는 물리적 RAM(랜덤 액세스 메모리)을 pages 라는 메모리 덩어리로 나눕니다. 교환하는 프로세스에 의하여 페이지의 메모리로 복사를 미리 구성된 하드 디스크 공간이라는 스왑을 하는 페이지의 메모리입니다. 실제 메모리와 스왑 공간의 결합 된 크기는 사용 가능한 가상 메모리의 양입니다.

스왑에 대한 지원은 Util-linux 패키지의 Linux 커널 및 사용자 공간 유틸리티에 의해 제공됩니다.

스왑 공간

스왑 공간은 디스크 파티션이나 파일의 형태를 취할 수 있습니다. 사용자는 설치 중에 또는 나중에 원하는대로 스왑 공간을 만들 수 있습니다. 스왑 공간을 위해 사용될 수 있 두 가지 목적으로 확장하는 가상 메모리 저쪽에 설치된 물리적 메모리(RAM),또한 일시 중단을 디스크를 지원합니다.

스왑으로 가상 메모리를 확장하는 것이 유익한 경우 설치된 실제 메모리의 양에 따라 다릅니다. 는 경우 양의 물리적 메모리를 양보다 적은 메모리를 실행하는 데 필요한 모든 필요한 프로그램을,그 다음은 도움이 될 수 있도록 스왑. 이렇게하면 Linux 커널 OOM killer 메커니즘이 자동으로 프로세스를 종료하여 메모리를 확보하려고 시도하는 메모리 부족 조건을 피할 수 있습니다. 을 증가량의 가상 메모리에 필요한 금액을 추가,필요한 차이(또는 그 이상)의 교환 공간입니다.

스왑을 활성화하는 가장 큰 단점은 성능이 낮다는 것입니다. 따라서 스왑을 활성화하는 것은 개인적인 취향의 문제입니다: 어떤 것을 선호 프로그램을 통해 사망하 교환하고 다른 사람 좋아하는 스왑 속도가 느린 시스템을 때는 물리 메모리의 소진되었습니다.

참고:스왑 파티션과 연속 스왑 파일 사용 사이에는 성능 차이가 없습니다.

을 확인하는 교환 상태,사용:

$ swapon --show

또는 표시하는 물리적 메모리뿐만 아니라 스왑 사용:

$ free -h

스왑 파티션

탱고 정확하지 않습니다.png탱고-부정확.png

이유:82는 MBR 의 스왑 파티션 유형이며 MBR 의 스왑 파티션 자동 감지가 없습니다. 스왑 파티션의/TRIM 명령은 지원되는 경우 커널에 의해 자동으로 발행되는 것 같습니다 Fedora 배포 안내서를 참조하십시오. (Talk 에서 토론하십시오:Swap#Claify swap discovery)

대부분의 GNU/Linux 파티션 도구를 사용하여 스왑 파티션을 만들 수 있습니다. 스왑 파티션은 일반적으로8282에서 대부분의 경우 이후 systemd 자동으로 감지하여 그것은 마운트(아래 참조).파티션을 Linux 스왑 영역으로 설정하려면 mkswap(8)명령이 사용됩니다. 예:

# mkswap /dev/sdxy
경고:지정된 파티션의 모든 데이터가 손실됩니다.

장치를 사용하도록 설정하고 페이지:

# swapon /dev/sdxy

이 기능을 사용하려면 스왑 파티션에서는 부팅 항목을 추가/etc/fstab:여기서

UUID=device_UUID none swap defaults 0 0

여기서device_UUID는 스왑 공간의 UUID 입니다.

파일 구문은 fstab 을 참조하십시오.

참고:

  • 스왑 파티션이 gpt 를 사용하는 장치에 있는 경우 fstab 항목은 선택 사항입니다. 다음 하위 섹션을 참조하십시오.
  • TRIM 지원 SSD 를 사용하는 경우 fstab 의 스왑 라인에서discard를 사용하는 것이 좋습니다. 면 활성화하는 스왑을 수동으로 swapon,를 사용하는-d--discard매개 변수를 달성하 같습니다. 자세한 내용은 swapon(8)을 참조하십시오.
경고: Mdadm 을 사용하여 RAID 설정에서 폐기 활성화하면 swapon 을 사용하는 경우 부팅시 및 런타임 중에 시스템 잠금이 발생합니다.

systemd 에 의한 활성화

systemd 는 두 가지 다른 메커니즘을 기반으로 스왑 파티션을 활성화합니다. 둘 다/usr/lib/systemd/system-generators의 실행 파일입니다. 발전기는 시동시 실행되며 마운트 용 기본 systemd 유닛을 만듭니다. 첫 번째systemd-fstab-generator는 fstab 을 읽어 스왑을 위한 단위를 포함하여 단위를 생성합니다. 두 번째systemd-gpt-auto-generator는 루트 디스크를 검사하여 단위를 생성합니다. 그것은 GPT 디스크에서만 작동,자신의 유형 GUID 에 의해 스왑 파티션을 식별 할 수 있습니다,자세한 내용은 systemd#GPT 파티션 automounting 을 참조하십시오.

용 스왑

을 비활성화 특정 스왑:

# swapoff /dev/sdxy

또는 사용하는-a스위치 비활성화하는 모든 스왑 공간입니다.

스왑은 systemd 에 의해 관리되므로 다음 시스템 시작시 다시 활성화됩니다. 감지 된 스왑 공간의 자동 활성화를 영구적으로 비활성화하려면systemctl --type swap를 실행하여 책임을 찾으십시오.유닛을 교환하고 마스크하십시오.

스왑 파일

대안으로 만드는 전체 파티션,파일 할 수있는 기능을 제공합 달라의 크기에 비행을하고,더 많은 쉽게 제거됩니다. 디스크 공간이 프리미엄(예:겸손 크기의 SSD)인 경우 특히 바람직 할 수 있습니다.

경고:Btrfs 는 Linux 커널 버전 5.0 이후 제한 사항이있는 스왑 파일을 지원합니다. 자세한 내용은 Btrfs#스왑 파일을 참조하십시오.

수동으로

스왑 파일 만들기

참고:당신이 사용하는 경우 를 포함한 여러,처음에 설명되어 있는 절차를 따르십시오 를 포함한 여#스왑 파일을 초기화 스왑 파일입니다.

dd 를 사용하여 선택한 크기의 스왑 파일을 만듭니다. 예를 들어,512MiB 스왑일:

# dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
참고:사용 dd 할당 파일이 가장 뛰어난 휴대성을 자랑하는 솔루션을 참조하십시오 swapon(8)§파일을 위한 구멍을 가진 상세정보.

설정한 권한(세계로 읽을 수 있는 스왑 파일이 거대한 지역이 취약점):

# chmod 600 /swapfile

을 만든 후가 올바르게 크기의 파일 형식으로 그것을 스왑:

# mkswap /swapfile

활성화 스왑 파일:

# swapon /swapfile

마지막으로,편집 파일시 구성하는 항목을 추가한 스왑일:

/etc/파일시
/스왑 none 스왑 기본값 0 0

에 대한 추가 정보를 참조하십시오 파일시#사용합니다.

참고:

  • 스왑 파일은 UUID 또는 레이블이 아닌 파일 시스템의 위치로 지정해야합니다.
  • Btrfs 를 사용할 때 생성 된 하위 볼륨도 목록에 추가하고discard,autodefrag및 압축 옵션을 제거하는 것을 잊지 마십시오.

제거 스왑 파일

제거하는 스왑 파일,그것은 꺼져 있어야 합 먼저 제거할 수 있습니다.

# swapoff /swapfile# rm -f /swapfile

마지막으로 제거에서 관련 항목/etc/fstab.

자동화 된

zram-generator

이 도구의 목적은 zram 장치의 생성입니다. Rust 로 작성되었으며 systemd 의 GitHub 에 있습니다. Zram-generatorAUR 패키지와 함께 설치할 수 있습니다.구성은 간단하며 README 에서 설명합니다.나는 이것을 할 수 없다.: 저자는 이제 사용하는 것이 숫양-발전기 대신으로 인해,저렴한 커밋을 주파수와 숫양의 요구를 커버습니다.

systemd-swap 은 zram 스왑,스왑 파일 및 스왑 파티션에서 하이브리드 스왑 공간을 만들기위한 스크립트입니다. Systemd 프로젝트와 제휴하지 않습니다.

systemd-swap 패키지를 설치하십시오. 주석과 설정swapfc_enabled=1/etc/systemd/swap.confsystemd-swap서비스를 시작/활성화하십시오.

자세한 내용과 권장 구성을 설정하려면 작성자 GitHub 페이지를 방문하십시오.

참고:

  • 경우에는 저널 유지 보여주는 다음과 같은 경고systemd-swap: WARN: swapFC: ENOSPCswapfc_force_preallocated=1/etc/systemd/swap.conf.
  • systemd-swap 에서 만든 스왑 파일은 최대 절전 모드에 쉽게 사용할 수 없습니다. Systemd-swap 문제 85 를 참조하십시오.

스왑 암호화

dm-crypt/스왑 암호화를 참조하십시오.

성능

스왑 작업은 일반적으로 크게보다 느리게 직접 액세스하는 데이터를 RAM. 비활성화를 스왑 전적으로 성능을 향상시킬 수 있는 때때로 이어질 저하를 이후,그것은 줄에 사용할 수 있는 메모리 VFS 캐시 원인이 더 빈번하고 비용이 많이 드는 디스크 I/O

스왑 값을 조정될 수 있는 성능 향상을 위해:

Swappiness

swappiness sysctl 매개 변수가 나타내 커널의 설정(또는 회피)스왑의 공간입니다. Swappiness 는 0 에서 200 사이의 값을 가질 수 있습니다(Linux<5.8 인 경우 최대 100). 낮은 값으로 인 커널을 피하는 교환하는 높은 값으로 인 커널을 사용하려고 교환,공간과 값의 100 미 IO 비용으로 동일합니다. 충분한 메모리에 낮은 값을 사용하는 것은 많은 시스템에서 응답 성을 향상시키는 것으로 알려져 있습니다.

현재 위치를 확인 swappiness 값:

$ sysctl vm.swappiness

또는 파일을/sys/fs/cgroup/memory/memory.swappiness/proc/sys/vm/swappiness에서 읽을 수 있습을 얻기 위해 원료의 정수 값을 사용할 수 있습니다.

참고: 로/proc/sys대신 합니다.swappiness 값을 일시적으로 설정하려면

# sysctl -w vm.swappiness=10

swappiness 값을 영구적으로 설정하려면 sysctl 을 만듭니다.d(5)구성 파일. 예:

/etc/sysctl.디/99-스왑.conf
vm.swappiness=10

이 작동 할 수있는 이유에 대한 테스트 및 자세한 내용은이 기사를 살펴보십시오.

VFS 캐시 압력

또 다른 sysctl 매개변수에 영향을 미치는 교환 성능은vm.vfs_cache_pressure통제하는 경향이 커널의를 되찾기 위해 메모리 사용되는 캐싱을 위한 저희 캐시 대 페이지 캐시 및 스왑. 이 값을 늘리면 VFS 캐시가 회수되는 속도가 증가합니다. 자세한 내용은 Linux 커널 설명서를 참조하십시오.

우선순위

경우 하나 이상의 스왑 파일이나 스왑 파티션을 고려해야 할당하는 우선 순위 값(0~32767)각 스왑 영역입니다. 시스템은 우선 순위가 낮은 스왑 영역을 사용하기 전에 우선 순위가 높은 스왑 영역을 사용합니다. 예를 들어 있는 경우,빠른 디스크(/dev/sda/dev/sdbpri매개변수:

/dev/sda1 none swap defaults,pri=100 0 0/dev/sdb2 none swap defaults,pri=10 0 0

또는--priority매개 변수의 swapon:

# swapon --priority 100 /dev/sda1

경우 두 개 또는 더 많은 분야의 우선 순위가 같고 그것은 가장 높은 우선 순위를 사용할 수 있는 페이지에 할당된 라운드 로빈 기초이다.

Zswap 또는 zram 사용

Zswap 은 스왑 된 페이지에 대해 압축 된 쓰기 백 캐시를 제공하는 Linux 커널 기능입니다. 이렇게하면 성능이 향상되고 IO 작업이 감소합니다. ZRAM 은 디스크의 스왑 파일에 대한 대안으로 메모리에 가상 압축 스왑 파일을 만듭니다.

스트라이핑

스왑 성능상의 이유로 RAID 를 사용할 필요가 없습니다. 커널은 자체할 수 있는 스트라이프를 교환 여러 장치에서,당신은 단지 그들에게 우선 순위가 같은/etc/fstab파일입니다. 자세한 내용은 소프트웨어-RAID 하우투를 참조하십시오.

Related Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다