Linux가 파일이 아닌 스왑 파티션을 사용하는 이유는 무엇입니까?


32

스왑 파일이 더 유연합니다.


1
Linux에서 스왑 파일을 사용할 수 있습니다. 여러 컴퓨터에서 지금하고 있습니다. 나는 LVM에서 ext4 또는 ext4 만 사용하여 특별한 것을 사용하지 않습니다. 암호화 나 복잡한 것이 없습니다. 일시 중지 및 최대 절전 모드는 내 NVMe 시스템에서도 저에게 큰 도움이되었습니다.
Cory T

답변:


32

스왑 파일은 스왑 파티션보다 융통성이 있지만 오류가 많습니다. 파일 시스템 오류가 스왑 파일을 손상시킬 수 있습니다. 스왑 파일은 파일을 이동하거나 삭제할 수 없으므로 관리자에게 고통을 줄 수 있습니다. 최대 절전 모드에는 스왑 파일을 사용할 수 없습니다. 스왑 파일은 과거에는 약간 느 렸지만 요즘에는 그 차이가 무시할 만합니다.

스왑 파일의 장점은 크기를 미리 결정할 필요가 없습니다. 그러나 Linux에서는 여전히 스왑 파일의 크기를 온라인으로 조정할 수 없습니다. 스왑 파일의 등록을 해제하고 크기를 조정 한 다음 다시 등록해야합니다 (또는 다른 파일을 작성하고 이전 파일을 제거해야 함). 따라서 스왑 파티션과 비교할 때 Linux의 스왑 파일에는 큰 이점이 없습니다. 주로 고정 장치가 아닌 일시적으로 더 많은 가상 메모리가 필요할 때 유용합니다.


4
과거에는 성능상의 이점도있었습니다. 그러나 나는 2.6이 나왔을 때 끝났다고 생각합니다.
xenoterracide

이것이 실제로 질문에 대답하지 않는 것 같습니다. 아니면 뭔가 빠졌습니까? 대답은 스왑 파일에 대해서만 말하고 파티션은 전혀 언급하지 않습니다. @Gilles는 의도적 인 것입니까, 아니면 오타를 만드셨습니까?
개브.

1
@gabe : 파티션과 비교하여 스왑 파일에 대해 이야기했습니다. 잘만되면 이것은 지금 더 명확하다.
Gilles 'SO- 악마 그만해

1
여기 Penz의 의견이 있습니다. 스왑 파일에서 인식 된 fs로 인한 성능 손실은 문제가됩니다.
ata

2
Ubuntu Community Help Wiki help.ubuntu.com/community/SwapFaq 에 따르면 최대 절전 모드에는 스왑 파티션이 필요합니다. 인용 : "활성 파일 시스템에서 스왑 파일을 사용할 수 없습니다." 그리고 성능과 관련하여 파일이 드문 경우가 아니면 차이가없는 것 같습니다. serverfault.com/questions/25653/…
Erik Sjölund

28

스왑 파티션은 필요한 모든 것이 주소 지정 가능한 메모리 풀일 때 파일 시스템에 대한 종속성을 피하기 때문에 선호 될 수 있습니다.

그러나 스왑 파티션 대신 또는 스왑 파티션 외에 스왑 파일을 사용할 수있는 것은 없습니다.

  • 파일을 작성하십시오.

    dd if=/dev/zero of=/extraswap bs=1M count=512
    
  • 파일 내용을 초기화하십시오.

    mkswap /extraswap
    
  • 사용해:

    swapon /extraswap
    
  • 작동하는지 확인하십시오.

    free -m
    

부팅 할 때 항상 스왑 파일을 사용하려면 / etc / fstab을 편집하고 추가하십시오

/extraswap           swap          swap    defaults    0 0

[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html


5
유용한 별명 moreswap갑자기 여분의 스왑 공간이 필요할 경우 터미널에 입력 할 수 있도록 영원히 사용하고 있습니다 .alias moreswap='swapfile=`mktemp /tmp/swapXXXX` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'
Michael Mrozek

이것은 좋은 정보이지만 질문에 대한 답은 아닙니다.
lesmana

6
또한 파일 시스템 오버 헤드 비트가 올바르지 않습니다. 일반적인 믿음과는 달리 스왑 파일 사용에 대한 오버 헤드는 없습니다. Andrew Morton은 여기에 간단한 설명을 제공합니다 . 이것이 스왑 공간 데몬 과 같은 동적 스왑 파일 기반 스왑 관리자를 사용하는 이유 중 하나입니다 .
ata

클라우드에서 실행할 때 스왑 파일 접근 방식이 유일한 옵션이 될 수 있다고 덧붙입니다.
sorin

1

아마도 주된 이유는 기본 커널 디스크 일시 중단이 스왑 파일에서 작동하지 않기 때문입니다. 예를 들어 데비안 위키 지침은 uswsusp필요한 경우 설치 하는 것입니다.

보다 최근에는 파일 시스템이 btrfs인 경우 스왑 파일이 작동하지 않으므로 배포에서 항상 스왑을 파티션으로 만드는 것이 가장 간단합니다.

커널 버전 2.6 이전에는 스왑을 위해 파일을 사용하는 것이 파티션보다 성능이 떨어질 가능성이 모호합니다. https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15


1

완성도를 높이기 위해 본인의 답변을 추가하겠습니다.

@Gilles가 말했듯이 스왑 파일은 최대 절전 모드로 사용할 수 없습니다. 스왑 파일을 사용할 때 시스템은 스왑 파일의 헤더를 찾아야하지만이를 위해서는 스왑 파일을 포함하는 파일 시스템을 마운트해야하며 저널링 된 파일 시스템 (예 : ext3, ext4 및 Linux에서 사용되는 모든 최신 파일 시스템) -디스크에서 재개하는 동안에는 마운트 할 수 없습니다. (실제로 그렇게하는 방법이 있지만 상당히 번거 롭습니다.)

출처 : https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt


0

나는 주로 파티션에있는 데이터에 대한 액세스 시간이 더 짧기 때문이라고 생각합니다. 스왑 파일의 요점은 시스템 관리자가 실제로 RAM을 사용하지 않고 시스템을 손상시킬 수있는 거대한 작업을 수행해야 할 때 시스템 관리자를 돕는 것입니다. 이 경우 그는 필요할 때 스왑 파일을 산발적으로 생성합니다.

그러나 어쨌든 둘 다 가질 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.