Değişimi kalıcı olarak nasıl kapatabilirim?


64

Takas sistemi sistemimi yavaşlatıyor ve kapatmak her şeyi daha yumuşak hale getiriyor. 3,5 GB RAM'im var.

sudo swapoff -aTerminale girerek takas işleminin nasıl kapatılacağını biliyorum , ancak bu sadece şu anki oturum için. Değişimi kalıcı olarak kapatmanın bir yolu var mı?


2
AFAIK takas hazırda bekleme için kullanılır. Sadece söylüyorum
DanMan

1
Evet öyle, ama yine de kullanılabilir. Sistem hazırda bekletme moduna girdiğinde takas bölümünü ve geri döndüğünde ayırmayı kaldıran küçük bir betiğim var. Bu arada takas dosyası aktif olmak zorunda değildir.
animaletdesequia

Basitçe /etc/rc.local içine -a bir swapoff koyun ve unut gitsin ...;)
user264467

1
@ user264467: takas özelliğini sadece her yeniden başlatmada devre dışı bırakmak için etkin bırakmak oldukça zahmetli, izinsiz olarak devre dışı bırakmak çok daha temiz.
karatedog

Yanıtlar:


119

Daha güvenli bir yaklaşım önerebilir miyim? Değişimin sizi ne zaman çökertmekten kurtarabileceğini asla bilemezsiniz. Değiştirme işlemi bilgisayarınızı gerçekten yavaşlatsa da, tüm RAM'inizi yiyen bir program kullanırsanız, değiştirme özelliğine sahip olmak sizi zor bir yeniden başlatmadan kurtarabilir. Bilgisayar değişmeye başladığında, rahatsız edici uygulamayı görebilecek ve öldürebileceksiniz.

Yani, yerine tamamen takas durdurmaktansa, sadece işletim sistemi takasları emin olun çok nadiren. Bu ayardaki vm.swappinessayar ile kontrol edilir /etc/sysctl.conf. Ubuntu'nun varsayılan ayarı, 60çoğu durumda çok fazla olan ve doğru bir şekilde hatırlamıyorsam ve RAM hala müsait olsa bile değiş tokuş etmeye başlamanıza neden olur. Bu değeri azaltırsanız, yalnızca acil durumlar için kullanırken takas emniyet hattını koruyabileceksiniz. Yani dosyayı açın:

sudo nano /etc/sysctl.conf

Ve bu satırı buna ekleyin:

vm.swappiness=10

Bu hala çok fazlaysa, 10 ila 1'i değiştirin. Şimdi, yeniden başlattıktan sonra, yalnızca kesinlikle gerekli olduğunda değiştireceksiniz ve basitçe unutabilirsiniz.


Değişen swapları seviyorum ve yıllardır yapmadım. Hatırlatma için teşekkürler. sudo turdonu oyla!
Darth Egregious

16
Sadece 'daha güvenli yaklaşım' argümanını eklemek için: Takasınız olmadığında ve sistem belleği bittiğinde, Linux OOM (Bellek Dolu) katili çağrılır. Bu, 'kötülük' puanına dayanan bir süreç seçer ve daha sonra ... uygulamanın değişiklikleri kaydetme, temizleme vb. Şansı olmadan onu öldürür (sonlandırır, kapatır). Böylece, takas kapatıp tükenirse OOM katilinin gözünde önemli işlemler kötü bir puan aldıysa, hakikaten işini kaybetme riskini çok iyi çekiyorsun. Yani, sadece eğer kapalı takas açmalısınız güvenen sen olacağını asla bellek tükendi.
Reid

5
@Reid, takas alanınız da tükenirse, aynı şeyin olacağına da dikkat edin.
'.

11
Bu aslında soruyu cevaplamıyor. Takas ayarının tamamen devre dışı bırakılması, 16GB veya 32GB RAM'e sahip bir sistemde çok anlamlı olabilir. Birkaç ekstra GB takas, bellek tüketen uygulamalar için hiçbir işe yaramazken, büyük miktarda takas (20GB gibi), çok fazla sabit disk / SSD alanı kaplar. Ayrıca, 32 GB RAM ile hazırda bekletme işlemi de eğlenceli değildir .
jmiserez

7
Bazı kurulumlarda, fiziksel RAM'iniz biter bitmez ve değişmeye başlar başlamaz, sistem "çamur emmeye" başlar ve kullanılamaz hale gelir. Evet, teoride suçlunun içine girip onu öldürebilirsiniz, ancak kullanıcı arayüzündeki odağı değiştirmenin 20 dakika sürdüğü ve SSH aracılığıyla bir parola istemi almasının daha uzun sürdüğü durumlarda, OOMing en iyi seçenek olarak ortaya çıkıyor yeniden başlatma, ardından içeri girip sorunu düzeltmek).
BCS

46

/ Etc / fstab içindeki takas satırını bulun ve yorum yapın. Benimki şöyle:

UUID=6880a28d-a9dc-4bfb-ba47-0876b50e96b3 /               ext4    errors=remount-ro 0       1
UUID=7350e6f2-e3a7-4d80-9a95-8741c7db118f /home           ext4    defaults        0       2
UUID=E2E26AD1E26AAA0D /media/windows  ntfs    defaults,umask=007,gid=46 0       0

# Swap a usb extern (3.7 GB):
#/dev/sdb1 none swap sw 0 0

Bu dosyayı gedit ile düzenleyebilirsiniz. İlk önce, sadece durumda yedekleyin:

sudo cp /etc/fstab /etc/fstab_backup
gksu gedit /etc/fstab

# Swap'ın bulunduğu satırın başına # ekleyin ve bilgisayarı yeniden başlatın.

VEYA

/etc/fstabDosyadaki takas girişini yorumlamanın komut satırı yolunu deneyin ,

sudo sed -i.bak '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

gksu gedit /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /host/ubuntu/disks/root.disk / ext4 loop,errors=remount-ro 0 1 /host/ubuntu/disks/swap.disk none swap loop,sw 0 0
Alex Li

1
Yani, ne diyorsa onu yap. "Takas" anlamına gelen ilk satırı yorumlayınız. : P
cHao

13

Sadece girişi silin (veya satırın önünde # ile yorum yapın) fstab'den ve yeniden başlatın. İçinde "takas" yazan satırı bulun.

sudo nano /etc/fstab

10
Bu da işe yarayacak, ancak bence, değişiklikleri geri almak istemeniz durumunda çizgiyi tamamen kaldırmak yerine daha iyi yorumluyorum.
animaletdesequia

1
Yayınımı değiştirdim.
mdalacu

11

Yanlış .. eğer systemd herhangi bir sürücüde bir SWAP bölümü bulursa, yine de onu otomatikleştirecektir. Kimse sistemden bahsetmediyse garip. Çözüm zaten oldukça basittir; takası kalıcı olarak devre dışı bırakmak için yapmanız gerekenler:

  1. takas -a
  2. / etc / fstab dosyasını düzenleyin ve varsa takas girişlerini yorumlayın.
  3. run: sudo systemctl mask dev-sdXX.swap (burada XX, takas alanıdır. Diğer tüm sürücülerde takas alanı varsa takılmaması için tüm olası bölümler için de kullanışlıdır)

Dışarıda barış.


kazanmak için 3 numara!
oneklc
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.