swapon nie działa, / proc / swaps pozostaje pusty

10

Mój serwer Ubuntu ma nie więcej niż 512 MB pamięci. Nie wystarczy uruchomić Node.js + MongoDB.

Dlatego postanowiłem dodać plik wymiany:

# 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

Brak komunikatu o błędzie => udane!

Nowy plik wymiany powinien być teraz na liście, ale nie jest to :

# swapon -s
Filename                Type        Size    Used    Priority

(pusta lista)

Jak mogę to zrobić? Jaki może być powód braku wymiany?

użytkownik22611
źródło
1
Spróbuj przenieść plik wymiany do katalogu głównego partycji aka/
2707974,
1
Kiedy po raz pierwszy spróbowałem, spróbowałem z /
swapfile
2
Zmień chmod 600 /root/myswapfileswapon /root/myswapfile
uprawnienia
1
To nie pomogło ... Ciekawe zawiadomienie: muszę zamienić się przed zamianą, mimo że zamiana nigdy nie pojawia się na liście.
user22611,
3
nie freewykazuje żadnego zużycia wymiany?
mdd

Odpowiedzi:

4

Najpierw usuń oryginalny plik wymiany:

sudo rm /myswapfile

Następnie uruchom kolejno następujące polecenia:

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

Dane wyjściowe powinny być podobne do następujących:

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

Teraz uruchom następujące polecenia:

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

Teraz edytuj / etc / fstab, aby zmiany były trwałe:

sudo nano /etc/fstab

i dodaj następujący wiersz na końcu pliku:

/swapfile    none            swap    sw              0       0

Naciśnij CTRL+, oa następnie naciśnij, ENTERaby zapisać plik.

Naciśnij CTRL+, xaby wyjść z nano.

źródło: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04


Jeśli to nadal nie działa, możesz sprawdzić swapiness:

cat /proc/sys/vm/swappiness

To polecenie powinno zwrócić liczbę. Domyślna wartość to 60.

Jeśli nie ma danych wyjściowych, uruchom kolejno następujące polecenia:

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

-a Jest ważna po teeczy można zastąpić cały plik !!!

mchid
źródło
1

Użyj, fdiskaby utworzyć zamianę. Dodaj nową partycję, wybierz Linux Swap, zapisz zmiany. mkswap /dev/sd? Musisz dodać go do swojego /etc/fstab/. Zmień XXX na UUID wymiany.

UUID=XXX none            swap    sw              0       0

Uruchom, swapon -aaby udostępnić go w /etc/fstab.

nicoX
źródło
1

Plik wymiany powinien znajdować się w / swapfile z uprawnieniami 600.

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

sudo mkswap /myswapfile

dodaj plik wymiany. Myślę, że zapomniałeś tego polecenia

sudo swapon /myswapfile
#check swap is working
sudo swapon -s
UNIm95
źródło
1
Polecenie chmod musi być sudo chmod 600.... Może to być również opłaca to root: sudo chown root:root ....
Wilf
1
Jeśli widzisz główny post @ użytkownika22611, użyj go jako root.
UNIm95,
1
makeswapmkswap
user22611,
1
@ user22611 tak. Masz rację. mkswap i chmod.
UNIm95
1
@ UNIm95 - możesz edytować swój post, aby rozwiązać te problemy ....
Wilf
-1

możesz to zrobić:

sudo umount -a
gedit /etc/fstab

i napisz gdzie swap to:

/proc/swap     proc   default  errors=noremount     1

a następnie to:

sudo mount -a

a następnie uruchom gpart i ustaw dysk wymiany jako swap i zamontuj go na głównym dysku dev, i może to działać dobrze w ten sposób.

Michał
źródło
4
Err ... nie sudo umount -aodmontowuje WSZYSTKO? (co może uszkodzić elementy, jeśli są używane) Jeśli próbujesz najpierw odmontować istniejące elementy wymiany, lepiej je znaleźć, mounta następnie odmontować konkretnie lub użyć sudo swapoff -a.
Wilf
1
to, co zrobiłem, nie mogło zepsuć żadnego z twoich dokonań i jest to jedyna rzecz do zrobienia.
Michael
2
Bieganie umount -ato naprawdę głupi pomysł. Odmontuj to, czego potrzebujesz, aby odmontować, a nie wszystko.
pzkpfw