스왑 공간을 늘리는 방법?


127

기본적으로 우분투에는 250MB의 스왑 공간이 있으며 더 큰 크기로 확장하고 싶습니다. 800MB가 필요합니다. 현재 스왑 한도에 도달하지 않고도 여러 응용 프로그램을 열 수 있다고 생각합니다. 누군가 나를 도울 수 있기를 바랍니다.


2
Gparted를 열고 여기에 보이는 스크린 샷을 게시하십시오.
Aaron Hill

스왑 파티션을 할당되지 않은 인접한 공간으로 확장 할 수 있으면를 사용하십시오 gparted. 활성 (부팅 된) 파티션이 스왑이 아닌 모든 공간을 사용하고 있기 때문에 이러한 공간을 사용할 수없는 경우 gparted할당되지 않은 공간을 만들기 위해 활성 파티션의 크기를 줄일 수 없습니다. 이 경우 더 큰 스왑 공간을 만들기 위해 Ubuntu를 다시 설치할 수 있습니다.
H2ONaCl

답변:


171

언제든지 스왑 파일을 만들 수 있습니다

더 많은 스왑 공간을 추가하십시오. 이것은 모든 측면에서 스왑 파티션과 동일하지는 않지만 쉽고 역동적입니다.

변경 /media/fasthdd/swapfile.img이 될 수 있습니다 예를 들어, 당신이 좋아하는 어떤 것에 /swap.img도. /media/fasthdd/swapfile.img예를 들어 파일 이름입니다.이 파일을 사용하는 경우 /media/fasthdd/새 스왑 파일을위한 충분한 여유 공간이 있는 디렉토리가 있어야 합니다.

터미널 응용 프로그램을 사용하여 명령을 실행하십시오. 모든 명령은 루트 권한 으로 실행해야합니다. 이렇게하려면 sudo모든 명령의 시작 부분에 추가 하거나 명령을 실행 sudo bash하기 전에 실행할 수 있습니다.

1. 빈 파일 만들기 :
이 파일에는 가상 메모리 내용이 포함되므로 필요에 따라 파일을 충분히 크게 만드십시오. 이것은 1Gb 파일을 생성하여 시스템의 + 1Gb 스왑 공간을 의미합니다.

dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

3Gb 파일을 만들려면 카운트 값을로 변경하십시오 count=3M. 자세한 내용 man dd은 참조하십시오.

2. 스왑 파일 굽기 :
다음 명령은 새로운 스왑 파일 안에 "스왑 파일 시스템"을 만들 것입니다.

mkswap /media/fasthdd/swapfile.img

3. 부팅시 :
컴퓨터를 부팅하는 동안 새 스왑 공간이 활성화되도록하려면 파일 시스템 구성 파일에 추가해야합니다 /etc/fstab. 파일 끝에 추가하십시오. 다른 파일 시스템 ( 스왑 파일이 포함 된 하나 이상의 시스템 )을 읽기-쓰기 모드로 마운트해야 파일에 액세스 할 수 있기 때문에 권장 됩니다.

# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0

4. 활성화 :
다음 명령을 사용하여 컴퓨터를 재부팅하거나 새 스왑 파일을 직접 활성화 할 수 있습니다.

swapon /media/fasthdd/swapfile.img


모든 것이 잘되면

더 많은 스왑 공간을 사용할 수 있음을 알 수 있습니다. 다음 명령을 사용하여 새 스왑을 확인하고 활성 스왑을 확인할 수 있습니다.

cat /proc/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB

5
편집하려면 /etc/fstab명령 줄에서 다음을 시도하십시오.sudo gedit /etc/fstab
Ben

정말 큰 도움이되었습니다. 감사합니다.
Breeze

새로 작성된 스왑 파일을 비활성화하는 방법은 무엇입니까?
Breeze

1
스왑 오프를 얻었다!
Breeze

2
"cat / proc / swaps"대신 상태를 보려면 "swapon -s"명령을 사용하십시오. "free"명령은 스왑 사용 정보도 제공합니다.
Paul M

40

스왑 파티션의 크기를 늘리기위한 GUI 방법

스왑 크기를 늘리는 또 다른 방법은 GParted 파티션 편집기 를 사용하는 것 입니다. 간단히 말해, 스왑 파티션의 크기를 조정 한 다음 마우스 오른쪽 버튼을 클릭하고 "스왑"을 선택하십시오.

gparted-live-disk 또는 Ubuntu 라이브 디스크를 부팅하는 것이 더 쉽습니다 (따라서 모든 /dev/sda파티션이 마운트 해제됩니다). Ubuntu 라이브 디스크를 실행하는 경우 아래 명령을 실행하여 gparted를 설치해야합니다.

sudo apt-get update
sudo apt-get install gparted && sudo gparted

스왑 파티션 전후에 할당되지 않은 공간이있는 경우에만 스왑 파티션의 크기를 늘릴 수 있어야합니다. 스왑 파티션 아래 또는 위에 할당되지 않은 공간 (스왑 파티션으로 추가하려는 공간)이 없으면 파티션의 크기를 조정하고 할당되지 않은 공간을 가져와야합니다.

사례 1-스왑 파티션 전후에 할당되지 않은 공간

GParted 파티션

위 스크린 샷에서 linux-swap 이전에는 11.4GB의 할당되지 않은 공간이 있었고 스왑 파티션 이후에는 12.8GB가있었습니다.

  • 크기를 조정하려면 스왑 파티션 (여기서 / dev / sda9)을 마우스 오른쪽 버튼으로 클릭하고 크기 조정 / 이동 옵션을 클릭하십시오. 다음과 같이 보일 것입니다 :

    여기에 이미지 설명을 입력하십시오

  • 슬라이더 화살표를 왼쪽이나 오른쪽으로 끈 다음 크기 조정 / 이동 버튼을 클릭하십시오. 스왑 파티션의 크기가 조정됩니다.


사례 2-할당되지 않은 공간이 파티션 사이에 있음

여기에 이미지 설명을 입력하십시오

위의 스크린 샷에서, 우리는 스왑 파티션에 추가하고자하는 할당되지 않은 공간이 사이에 있었다 dev/sda7그리고 /dev/sda8바로 위의 스왑 파티션에 그에서 할당되지 않은 공간을 이동 .TO, 우리는 아래의 간단한 단계를 수행해야합니다,

  • / dev / sda8 파티션을 마우스 오른쪽 버튼으로 클릭하고 크기 조정 / 이동 옵션을 클릭하십시오 .

    여기에 이미지 설명을 입력하십시오

  • /dev/sda8파티션 바로 위에 할당되지 않은 공간 이 아래에 /dev/sda8오도록 슬라이더를 맨 왼쪽으로 클릭하고 이동하십시오 . 그런 다음 크기 조정 / 이동 버튼을 클릭하십시오.

  • 이제 할당되지 않은 공간은 Case 1 과 같은 스왑 파티션 바로 위에 있었고 이제 Case 1을 따릅니다.


사례 3-할당되지 않은 공간이 확장 파티션 외부에 존재하는 경우)

여기에 이미지 설명을 입력하십시오

확장 파티션 바로 아래에 18GB의 할당되지 않은 공간 이 있습니다. 확장 파티션 내부에있는 linux-swap 파티션 에이 공간을 추가하려면 아래 단계를 따라야합니다.

  • 확장 파티션을 마우스 오른쪽 버튼으로 클릭하고 크기 조정 / 이동 옵션을 선택 하면 아래 스크린 샷과 같습니다.

    여기에 이미지 설명을 입력하십시오

  • 화살표를 오른쪽 끝으로 클릭하고 드래그하여 크기 조정 / 이동을 클릭 하면 할당되지 않은 공간이 18GB로 확장 파티션의 맨 아래에 표시됩니다. GB는 이것과 결합하여 확장 파티션의 맨 아래에 할당되지 않은 공간 (18.34 + 14.80GB)을 만듭니다.

  • 이제 스왑 파티션 바로 아래에 할당되지 않은 공간이 있었으며 사례 1 과 같으며 사례 1 과 같습니다 .

참고 : 위 작업을 진행하기 전에 중요한 데이터를 모두 백업해야합니다.


2
GUI 도구에 대한 훌륭한 가이드, ++ 그대로. 그러나 파티션 편집과 관련된 가능한 위험에 대한 경고가있을 수 있습니다. 간단한 MBR 백업 가이드 또는 이러한 가이드에 대한 링크는 큰 도움이 될 것입니다. 오류는 거의 없을 수 있지만 비용은 높아질 수 있습니다. + MBR 백업을 수행 하면 시간이나 공간이 너무 많이 소비되지 않으며 올바르게 수행되면 많은 작업, 공간 및 시간을 절약 할 수 있습니다.
Sampo Sarrala

2
swapon 명령하는 것을 잊지 마세요, 바로은 swapon 스왑 파티션을 클릭
user3752281

29

fallocate스왑 파일을위한 공간을 예약하고 파일을 0에서 ~ 사이로 채울 필요없이 사용할 수도 있습니다 dd.

로부터 man페이지 :

DESCRIPTION
   fallocate  is  used  to preallocate blocks to a file.  For filesystems which support the fallocate system call, this is done quickly by
   allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.  This is much faster than creating a  file  by
   filling it with zeros.

이미 swap정의 된 것이 있으면이를 제거하거나 유지할 수 있으며 * nix가 swapon우선 순위 를 정의하여 관리 할 수 있습니다. 속도 나 다른 사용자 지정 요구에 따라 스왑을 여러 장치간에 분산하려는 경우 유용 할 수 있습니다 ( 스택 Exchange에서 여러 스왑 파일의 목적무엇입니까? 참조 ).

fallocate두 번째 스왑 파일 추가를위한 간단한 사용법

스왑 상황 확인 :

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

4G 스왑 파일 생성

스왑 파일을 만들고 활성화하는 표준 방법.

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

스왑을 영구적으로 만드십시오

/etc/fstab다음에 다시 부팅 할 때 스왑이 초기화되도록 파일에 줄을 추가하십시오 (새로 만든 스왑 공간의 우선 순위를 업데이트하고 이전 스왑 파일의 우선 순위를 업데이트합니다).

/ etc / fstab 파일에서 이전 스왑의 우선 순위는 10입니다.

/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

재부팅 후 스왑 상황을 확인하십시오.

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

스왑 공간 중 하나를 제거하십시오 (예 : 원래 256Mb)

편집하다 /etc/fstab

제거하려는 스왑과 관련된 행을 제거하십시오.

스왑 삭제

스왑 파일을 삭제하고 제거하십시오.

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

자원:


2
1 업 fallocate보다 훨씬 더 dd당신의 FS가 지원하는 경우. 그 한 줄짜리 사람들은 여전히 ​​읽기가 어렵다고 생각하고 실제 명령으로 나눌 경우 공부하기가 더 쉬울 수 있습니까?
Sampo Sarrala

2
이것은 완벽한 해답의 예입니다. 이해하기 쉽고 구현하기가 매우 쉽습니다. 그것은 우분투 18에서 마법처럼 일했다
의 Damián 라파엘 Lattenero에게

7

내 경우에는 이미 1GB로 생각되는 스왑 파일이 있었지만 더 자세히 살펴보면 256MB 만 커졌고 레일 자산을 사전 컴파일 할 때 서버의 메모리가 부족합니다.

Errno::ENOMEM: Cannot allocate memory - nodejs

https://stackoverflow.com/a/34885004/784318에 설명 된대로 스왑 파일을 만들었습니다.

이제 빈 파일을 만드는 줄 /swapfile은 다음과 같습니다.

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

이제 스왑 파일의 크기를 조정하려면 다음과 같은 간단한 단계를 수행해야했습니다.

# Reboot the system to be able to switch swapping off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the `/swapfile`
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

파일이 생성되었습니다 (536870912/1024/1024 = 512MB).

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

free -m명령을 사용 하여 파일이 예상대로 512MB임을 알 수 있습니다.


단일 파일을 제거하기 위해 rm 명령과 함께 위험한 -r 플래그를 사용하면 안됩니다. rm -f는 충분해야합니다.
Sampo Sarrala

1
@SampoSarrala 감사합니다. 이에 따라 스크립트를 변경했습니다.
Besi

@Besi 감사합니다! 이것이 바로 Ubuntu 18.04 LTS 시스템에서 스왑 파일 크기를 늘리는 데 필요한 것입니다. 당신이 쓴 그대로 작동했습니다. 훌륭한 도움 !!!
B-radical

이 솔루션은 명령 줄이기 때문에 재 파티셔닝이 필요하지 않으며 스왑 파일이 이미 존재하는 경우 수행 할 작업에 대해 설명합니다.
cxrodgers

3

스왑 파일을 추가하는 방법

  1. creat .img 파일

    sudo dd if = / dev / zero of = / swap.img bs = 1M count = 1000

참고! : bs = 1M count = 1000 ==> 1GB

(bs * count = 메가 바이트 크기)

다른 예 :

sudo dd if = / dev / zero of = / swap.img bs = 10M count = 100

  1. .img 파일 형식

    sudo mkswap /swap.img

  2. 스왑 파일 사용

    sudo swapon /swap.img

  3. fstab에 스왑 파일 추가

이 줄을 fstab에 추가하십시오 (/ etc / fstab)

/swap.img   none            swap    sw              0       0

나는 보통 "mkswap -L SWAP2"와 같이 스왑에 레이블을 설정합니다.
Paul M

참고 :이 삼포 리아에 의해 허용 / 가장 upvoted 답변으로, 미만 컨텍스트와 스왑 IMG가 / 미디어 / fasthdd 대신 루트에 직접 추가와 같은 대답이다
스틸

0

스왑 크기를 8GB로 조정

# Turn swap off
# This moves stuff in swap to the main memory and might take several minutes
sudo swapoff -a

# Create an empty swapfile
# Note that "1G" is basically just the unit and count is an integer.
# Together, they define the size. In this case 8GB.
sudo dd if=/dev/zero of=/swapfile bs=1G count=8

sudo mkswap /swapfile  # Set up a Linux swap area
sudo swapon /swapfile  # Turn the swap on

그것이 작동했는지 확인

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