터미널에서 스왑 파일을 제거하지 않고 어떻게 크기를 늘릴 수 있습니까?

기존 “스왑 파일”을 삭제하고 다시 만들지 않고 늘리는 방법이 있습니까? 스왑 공간을 1GB에서 2GB로 늘리고 싶습니다. 현재 다음과 같이 설정되어 있습니다.

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        1048572 736640  -1
$ ls -lh /swapfile
-rw------- 1 root root 1.0G Nov  9  2016 /swapfile

우분투 14.04를 사용하고 있습니다.



답변

먼저 스왑 파일을 비활성화하십시오.

sudo swapoff /swapfile

이제 스왑 파일의 크기를 늘리십시오 :

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 oflag=append conv=notrunc

위의 명령은 스왑 파일 끝에 1GiB의 0 바이트를 추가합니다.

파일을 “스왑 파일”로 설정하십시오.

sudo mkswap /swapfile

스와핑 활성화 :

sudo swapon /swapfile

답변

당신은 존재 하나의 크기를 조정하는 대신 새로운 스왑 파일을 추가해야합니다 그것은 당신에게 그렇게 아무 비용이 없기 때문에 . 스왑 파일의 크기를 조정하려면 먼저 스왑 파일을 비활성화하여 스왑 내용을 RAM으로 제거하십시오. 그러면 RAM에 대한 압력이 증가하고 OOM 킬러를 소환 할 수도 있습니다 (몇 분 동안 디스크를 스 래싱 할 수 있음은 말할 것도 없습니다). 여러 스왑 파일은 문제가되지 않지만 다른 스왑 파일을 설정하는 것은 간단합니다. 스왑 파일의 크기를 조정하여 다른 파일을 추가하는 것보다 말 그대로 이점이 없습니다.

dd if=/dev/zero of=/some/file count=1K bs=1M
mkswap /some/file
sudo chown root:root /some/file
sudo chmod 600 /some/file
sudo swapon /some/file

답변

내가 한 것처럼 다른 스왑 파일을 만들 수 있습니다.

  1. sudo fallocate -l 4G /swapfile
  2. sudo chmod 600 /swapfile
  3. sudo mkswap /swapfile
  4. sudo swapon /swapfile
  5. 그와 함께 작동하는지 확인 sudo swapon --show
    이 영구적으로 파일을 추가하려면 fstab파일 입력 :
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

답변

나는 블로그 포스트 에서 Arian Acosta의 조언에 따라 우분투 17.04에 좋은 결과를 얻었습니다 . 여기에서 4G sudo fallocate -l 4G /swapfile를 원하는 기가 바이트로 대체 할 수 있습니다 . 예를 들어 sudo fallocate -l 2G /swapfileTS의 경우.

일반적으로 스왑 파일에 권장되는 크기는 RAM 크기의 2 배이지만 필요한만큼 크게 만들 수 있습니다. 디스크에 저장되기 때문에 성능이 훨씬 나 빠지기 때문에 이는 메모리를 대체하지 않습니다.

스왑 파일을 4GB로 늘리고 우분투 16.04에서 테스트하는 간단한 bash 스크립트를 만들었습니다.

이것은 한 줄씩 또는 bash 스크립트로 실행할 수 있지만 헤드리스 설치를 위해 사용합니다.

#!/bin/bash
echo "====== Current Swap ======"
sudo swapon -s
echo "====== Turning Off Swap ======"
sudo swapoff /swapfile
echo "====== Allocating 4GB Swap ======"
sudo fallocate -l 4G /swapfile
echo "====== Making Swap ======"
sudo mkswap /swapfile
echo "====== Setting Permissions to Root Only  ======"
sudo chmod 600 /swapfile
echo "====== Turning On Swap ======"
sudo swapon /swapfile
echo "====== Current Swap ======"
sudo swapon -s
echo "====== Done! ======"

답변

“스왑 파일의 크기를 조정하는 방법”에 대한 일반적인 답변 :

Bogdan Cornianu에서 여기 : https://bogdancornianu.com/change-swap-size-in-ubuntu/

[QUOTE (ALMOST VERBATIM, 내 의견 추가 몇 개만 포함) START]

다음 예에서는 / swapfile 에서 사용 가능한 스왑 공간을 4GiB 에서 8GiB로 확장합니다 .

  1. 모든 스왑 프로세스 끄기

    sudo swapoff -a
    
  2. 스왑 크기 조정

    sudo dd if=/dev/zero of=/swapfile bs=1G count=8
    

    if= 입력 파일
    of= 출력 파일
    bs= 블록 크기; 여기 1G에있어서, 1 기비 바이트 또는 지브을 나타내며, man dd이고 G = 1024 * 1024 * 1024 바이트
    count블록 = 승산

  3. 파일을 스왑으로 사용 가능하게 만들기

    sudo mkswap /swapfile
    
  4. 스왑 파일을 활성화

    sudo swapon /swapfile
    
  5. 사용 가능한 스왑 금액 확인

    grep SwapTotal /proc/meminfo
    

[견적서 끝]