Linux çekirdeği, takas dosyasının ne sıklıkta kullanıldığını kontrol eden değiştirilebilen bir ayar sağlar.
Bir swappiness ayarı sıfır bir swappiness ayarı yaparken disk (bellek tükendi) kesinlikle gerekli olmadıkça kaçınılmalıdır anlamına gelir 100 programları neredeyse anında diske takas olacağı anlamına gelir.
Ubuntu sistemi varsayılan olarak 60'lık bir değere sahiptir, yani bellek kullanımı RAM'imin yaklaşık yarısı kadar olduğunda takas dosyası oldukça sık kullanılır. Kendi sisteminizin swappiness değerini çalıştırarak kontrol edebilirsiniz:
one@onezero:~$ cat /proc/sys/vm/swappiness
60
4 GB RAM'im olduğundan, bunu 10 veya 15'e düşürmek istiyorum. Takas dosyası sadece RAM kullanımım yüzde 80 veya 90 civarında olduğunda kullanılacaktır. Sistemin takas değerini değiştirmek için kök/etc/sysctl.conf
olarak açın . Ardından, bu satırı değiştirin veya dosyaya ekleyin:
vm.swappiness = 10
Değişikliğin yürürlüğe girmesi için yeniden başlatın.
Değeri, sisteminiz hala çalışıyorken de değiştirebilirsiniz:
sysctl vm.swappiness=10
Aynı efekti elde etmek için takas işleminizi çalıştırıp swapoff -a
ardından swapon -a
yeniden başlatma yerine kök olarak da temizleyebilirsiniz .
Değişim Formülünüzü hesaplamak için:
free -m (total) / 100 = A
A * 10
root@onezero:/home/one# free -m
total used free shared buffers cached
Mem: 3950 2262 1687 0 407 952
-/+ buffers/cache: 903 3047
Swap: 1953 0 1953
bu yüzden toplam 3950/100 = 39,5 x 10 = 395
Yani, bunun anlamı, % 10 (395 MB) koç bırakıldığında, takas kullanmaya başlamasıdır.
Swappiness nedir
Değişim parametresi, çekirdeğin, işlemleri fiziksel bellekten ve değiştirme diskine taşıma eğilimini kontrol eder. Diskler RAM'den çok daha yavaş olduğundan, işlemler çok agresif bir şekilde bellekten taşınırsa, sistem ve uygulamalar için daha yavaş yanıt sürelerine neden olabilir.
swappiness
0 ile 100 arasında bir değere sahip olabilir.
swappiness=0
:
- Çekirdek 3.5 ve daha yeni bir sürüm: takas özelliğini devre dışı bırakır.
- 3.5'ten daha büyük olan çekirdek sürümü: İşlemleri fiziksel bellekten mümkün olduğunca uzun süre değiştirmeyi önler.
swappiness=1
:
- Çekirdek sürüm 3.5 ve üstü: tamamen devre dışı bırakmadan minimum değişim.
swappiness=100
:
- Çekirdeğe, işlemleri fiziksel bellekten agresif bir şekilde takas etmesini ve önbellek takas ettirmesini bildirir.
Bkz. Http://en.wikipedia.org/wiki/Swappiness .
Ubuntu’da varsayılan ayar swappiness=60
. Varsayılan takas değerinin azaltılması, tipik bir Ubuntu masaüstü kurulumunda genel performansı artıracaktır. Değeri swappiness=10
önerilir, ancak deneme yapmaktan çekinmeyin.
Örnek
% 91 oranında swap kullanmaya başladı :
Ben RAM faydalanmak için sistemimi & vm yapılandırılmış gibi % 90 , en % 90 hayır takas yoktu.
Ondan sonra Firefox & Shutter gibi bazı uygulamaları açtım ve RAM kullanımı % 90'ın üzerinde olduğu için değişmeye başladı .
sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"