swapon은 효과가 없으며 / proc / swaps는 비어 있습니다.


10

내 우분투 서버의 메모리는 512MB를 넘지 않습니다. Node.js + MongoDB를 실행하기에는 충분하지 않습니다.

따라서 스왑 파일을 추가하기로 결정했습니다.

# dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.69263 s, 229 MB/s
# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=3c64da32-d0b4-49e5-92db-fba961b8ae28
# swapon /root/myswapfile

오류 메시지가 없습니다 => 성공했습니다!

새 스왑 파일이 이제 나열되어야 하지만 다음은 아닙니다 .

# swapon -s
Filename                Type        Size    Used    Priority

(빈리스트)

어떻게 작동시킬 수 있습니까? 스왑이 누락 된 이유는 무엇입니까?


1
스왑 파일을 파티션의 루트로 이동 /
시키십시오

1
처음 시도했을 때 / swapfile을 사용
user22611

2
chmod 600 /root/myswapfileswapon /root/myswapfile
퍼미션

1
도움이되지 못했습니다 ... 흥미로운 공지 : 스왑이 목록에 나타나지 않더라도 스왑하기 전에 스왑 오프해야합니다.
user22611

3
free스왑 사용량 이 표시됩니까?
mdd

답변:


4

먼저 원본 스왑 파일을 지우십시오.

sudo rm /myswapfile

다음 명령을 하나씩 실행하십시오.

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
ls -lh /swapfile

출력은 다음과 유사해야합니다.

-rw------- 1 root root 1.0G Aug  3 18:20 /swapfile

이제 다음 명령을 실행하십시오.

sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s

이제 / etc / fstab을 편집하여 변경 사항을 영구적으로 만듭니다.

sudo nano /etc/fstab

파일 끝에 다음 줄을 추가하십시오.

/swapfile    none            swap    sw              0       0

를 눌러 CTRL+ o다음 Enter 키를 눌러 ENTER파일을 저장합니다.

나노를 종료하려면 CTRL+ x를 누르 십시오.

출처 : https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04


그래도 작동하지 않으면 교체 여부를 확인하십시오.

cat /proc/sys/vm/swappiness

이 명령은 숫자를 반환해야합니다. 기본값은 60이어야합니다.

출력이 없으면 다음 명령을 하나씩 실행하십시오.

sudo sysctl vm.swappiness=60
echo "vm.swappiness = 60" | tee -a /etc/sysctl.conf

-a 중요tee또는 당신은 전체 파일을 덮어 쓰게됩니다!


1

fdisk스왑을 만드는 데 사용 합니다. 새 파티션을 추가하고 Linux swap을 선택한 후 변경 사항을 작성하십시오. mkswap /dev/sd? 에 추가해야합니다 /etc/fstab/. 스왑 UUID로 XXX를 변경하십시오.

UUID=XXX none            swap    sw              0       0

swapon -a에서 사용할 수 있도록 실행하십시오 /etc/fstab.


1

스왑 파일은 / swapfile에 600 개의 권한이 있어야합니다.

#moving file and changing rights
sudo mv /root/myswapfile /myswapfile
sudo chmod 600 /myswapfile

sudo mkswap /myswapfile

스왑 파일을 추가하십시오. 이 명령을 잊어 버린 것 같아

sudo swapon /myswapfile
#check swap is working
sudo swapon -s

1
chmod 명령은이어야 sudo chmod 600...합니다. 루트가 소유하고있는 것도 가치가 있습니다 sudo chown root:root ....
Wilf

1
@ user22611의 주요 게시물을 사용하면 루트로 작동한다는 것을 알 수 있습니다.
UNIm95

1
makeswapmkswap
user22611

1
@ user22611 예. 네 말이 맞아 mkswap 및 chmod.
UNIm95

1
@ UNIm95- 이 문제를 해결하기 위해 게시물을 편집 할 수 있습니다 ....
Wilf

-1

당신은 이것을 할 수 있습니다 :

sudo umount -a
gedit /etc/fstab

그리고 swap이 이것에 쓰는 곳 :

/proc/swap     proc   default  errors=noremount     1

그리고 이것은 :

sudo mount -a

그런 다음 gpart를 실행하고 스왑 드라이브를 스왑으로 설정하고 루트 dev 드라이브에 마운트하면이 방법으로 잘 작동 할 수 있습니다.


4
오류 ... 모두 sudo umount -a마운트 해제 하지 않습니까? (사용중인 경우 문제가 발생할 수 있음) 기존 스왑 항목을 먼저 마운트 해제하려는 경우 해당 스왑 항목을 먼저 찾은 mount다음 구체적으로 마운트 해제하거나을 사용하는 것이 좋습니다 sudo swapoff -a.
Wilf

1
그것은 내가 당신이 만든 것을 깨뜨리지 않은 것이 었습니다.
Michael

2
달리기 umount -a는 정말 멍청한 생각입니다. 모든 것이 아니라 마운트 해제해야하는 것을 마운트 해제하십시오.
pzkpfw
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.