swapon'un bir etkisi yoktur, / proc / swap boş kalır


10

Ubuntu sunucumun 512 MB'den fazla belleği yok. Node.js + MongoDB'yi çalıştırmak için yeterli değildir.

Bu yüzden bir takas dosyası eklemeye karar verdim:

# 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

Hata mesajı yok => başarılı!

Yeni takas dosyası şimdi listelenmelidir, ancak şu değildir :

# swapon -s
Filename                Type        Size    Used    Priority

(boş liste)

Nasıl çalıştırabilirim? Kayıp takasın nedeni ne olabilir?


1
Takas dosyasını bölüm aka köküne taşımaya çalışın/
2707974

1
İlk denediğimde, / swapfile
user22611

2
chmod 600 /root/myswapfileswapon /root/myswapfile
İzni

1
Bu yardımcı olmadı ... İlginç bir uyarı: Takas listede görünmese de, takas etmeden önce takas etmem gerekiyor.
user22611

3
yok freeherhangi takas kullanımını gösterir?
MDD

Yanıtlar:


4

İlk olarak orijinal takas dosyanızı silin:

sudo rm /myswapfile

Ardından, aşağıdaki komutları tek tek çalıştırın:

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

Çıktı aşağıdakine benzer olmalıdır:

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

Şimdi, aşağıdaki komutları çalıştırın:

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

Şimdi, değişiklikleri kalıcı hale getirmek için / etc / fstab dosyasını düzenleyin:

sudo nano /etc/fstab

ve dosyanın sonuna aşağıdaki satırı ekleyin:

/swapfile    none            swap    sw              0       0

Basın CTRL+ oardından basın ENTERdosyayı kaydedin.

Nano'dan çıkmak için CTRL+ tuşuna basın x.

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


Bu hala işe yaramazsa, swappiness'i kontrol etmek isteyebilirsiniz:

cat /proc/sys/vm/swappiness

Bu komut bir sayı döndürmelidir. Varsayılan değer 60 olmalıdır.

Çıktı yoksa, aşağıdaki komutları tek tek çalıştırın:

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

-a Önemlidir sonra teeveya tamamını dosyanın üzerine yazar !!!


1

fdiskTakas oluşturmak için kullanın . Yeni bir bölüm ekleyin, Linux takasını seçin, değişiklikleri yazın. mkswap /dev/sd? Eklemek zorundasın /etc/fstab/. XXX'yi UUID takasıyla değiştirin.

UUID=XXX none            swap    sw              0       0

swapon -aKullanılabilir hale getirmek için çalıştırın /etc/fstab.


1

Takas dosyanız 600 haklı / swapfile olmalıdır.

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

sudo mkswap /myswapfile

takas dosyası ekle. Bence bu komutu unuttun

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

1
Chmod komutunun olması gerekir sudo chmod 600.... Aynı zamanda değerli yapma sahibi root olabilir: sudo chown root:root ....
Wilf

1
@ User22611 ana mesajını görüyorsanız, root olarak çalıştığını görün.
UNIm95

1
makeswapmkswap
user22611

1
@ user22611 evet. Haklısın. mkswap ve chmod.
UNIm95

1
@ UNIm95 - bu sorunları gidermek için yayınınızı düzenleyebilirsiniz ....
Wilf

-1

bunu yapabilirsin:

sudo umount -a
gedit /etc/fstab

ve takasın nerede olduğunu yazın:

/proc/swap     proc   default  errors=noremount     1

ve sonra bu:

sudo mount -a

ve sonra gpart'ı çalıştırın ve takas sürücüsünü takas olarak ayarlayın ve root dev sürücüsüne monte edin, bu şekilde düzgün çalışabilir.


4
Hata ... sudo umount -aHER ŞEYİN bağlantısını kesmiyor mu? (eğer kullanımda bir şeyleri kırabilir) Önce mevcut takas şeylerini çıkarmaya çalışıyorsanız, onları bulmak mountve daha sonra özel olarak çıkarmak veya kullanmak daha iyi olabilir sudo swapoff -a.
Wilf

1
yaptığım şeyleri kırmayacağım şeydi ve yapılacak tek şey bu.
Michael

2
Koşmak umount -agerçekten çok aptalca bir fikir. Çıkarmak için neye ihtiyacınız olduğunu kesin, her şeyi değil.
pzkpfw
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.