Linux Bellek Yönetiminde swappiness nasıl yapılandırılır?


11

Swappiness parametresi, çekirdeğin işlemleri fiziksel bellekten ve takas diskine taşıma eğilimini denetler. Varsayılan ayar nedir ve genel performansı artırmak için bunu nasıl yapılandırabilirim ?


3
Swappiness değiştirdikten sonra, swapoff -ayeniden başlamak için swap ile boşaltmak yararlı buldum . serverfault.com/a/354384/203035
Nemo

Yanıtlar:


10

Linux çekirdeği, değiştirilebilirliği kontrol eden ayarlanabilir bir ayar sağlar

$ cat /proc/sys/vm/swappiness
60  

/etc/sysctl.confkök olarak aç . Ardından bu satırı değiştirin veya dosyaya ekleyin:

vm.swappiness = 10

swappiness değerini değiştirmek için bu komutu geçici olarak deneyin:

$ echo 50 > /proc/sys/vm/swappiness

1
"Bunu genel performansı artırmak için nasıl yapılandırabilirim?"
techraf

Takasınız olmasa bile sisteminizi yavaşlatan (belki de uygulamaları çökmüş) kullanılabilir RAM'in tükendiği zamanlarda gerçekleştiği için sisteminizin performansının yavaş olduğu durumlarda takas yapılması gerekir. Yani işleri basitleştirmek için, sisteminizin tersi olmaktan ziyade sisteminizin bataklığa uğraması nedeniyle - ve bazı durumlarda günü kurtarabilir.
Mongrel

2
sudo sysctl -p /etc/sysctl.confDeğişikliklerin geçerli olması için de gerek yok mu?
pkaramol

11

Gönderen Swappiness, Wikipedia

Bu değeri sanal bir dosyada ayarlayabilirsiniz /proc/sys/vm/swappiness . Bahsedilen değer, takas alanının nasıl kullanılması gerektiğine karar verecektir, aşağıda amaçları olan değerler verilmiştir.

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

Aslında ihtiyaca da bağlı olsa da, eğer kullanılabilir fiziksel bellek yeterliyse, takas alanı için büyük bir ihtiyaç olmayabilir, Layman'ın terimleriyle, varsayılan değerinin değiştirilmesine gerek kalmaz 60.


@techraf cevabı güncelledi.
Keyshov Borat

1
VM'lerde yine de 10'a değiştirilmesini tavsiye ederim.
Rui F Ribeiro

2

RedHat / CentOS'ta varsayılan değer 60'tır.
"Performansı artırmak için" çok geniş bir terimdir. Hangi performansı geliştirmeye çalışıyorsunuz?

Bellek yetersizliği ile ilgili sorunlarınız mı var?
Hala boş bellek / önbelleğe alınmış bellek varken sistem SWAP kullanıyor mu?

Linux'ta boş RAM = boşa RAM, bu nedenle neredeyse tüm boş bellek disk önbellekleri için kullanılır.
Değiştirilmemiş RAM'iniz ne olursa olsun, bellekteki sayfaların uzun süreler erişilmediyse SWAP'a taşındığı swappiness = 60 olan durumlar vardır.
Bazı bellek sayfalarını SWAP'a taşımak kötü bir şey değildir.

Lütfen daha ayrıntılı cevap için sorununuza biraz daha ışık tutunuz.

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.