2.6.28 numaralı çekirdekten beri Linux, En Son Kullanılan En Son Bölünmüş (LRU) sayfa değiştirme stratejisini kullanıyor. Program metni veya paylaşılan kütüphaneler gibi bir dosya sistemi kaynağına sahip sayfalar, dosya önbelleğine aittir. Dosya sistemi desteği olmayan sayfalara anonim sayfalar adı verilir ve uygulamalar vb. İçin ayrılmış yığın alanı gibi çalışma zamanı verilerinden oluşur. Genellikle dosya önbelleğine ait sayfalar bellekten çıkarmak için daha ucuzdur (bunlar gerektiğinde diskten okunması kolay olabilir) . Anonim sayfalarda dosya sistemi desteği bulunmadığından, depolanacak takas alanı olmadığı sürece, bir programın ihtiyaç duyduğu süre boyunca bellekte kalmaları gerekir.
Takas bölümünün bir şekilde sisteminizi yavaşlatması yaygın bir yanılgıdır . Bir takas bölümünün olmaması, çekirdeğin sayfaları bellekten çıkarmayacağı anlamına gelmez, sadece çekirdeğin hangi sayfaların tahliye edileceği konusunda daha az seçeneğe sahip olduğu anlamına gelir. Mevcut takas miktarı ne kadar kullanıldığını etkilemeyecektir.
Linux, takas alanının yokluğuyla başa çıkabilir, çünkü varsayılan olarak çekirdek bellek muhasebesi politikası belleği aşabilir . Dezavantajı, fiziksel bellek tükendiğinde ve çekirdeğin anonim sayfaları diske değiştiremediği durumlarda, bellek dışı-katil (OOM-katil) mekanizmasının bellek boşaltma için "hileli" işlemleri öldürmeye başlaması diğer işlemler
Bu vm.swappiness
seçenek, dosya önbellek sayfalarının değiştirilmesini anonim sayfaların lehine değiştiren bir değiştiricidir. Dosya önbelleğine, vm.swappiness
değiştiriciden düşüldüğü ( file_prio=200-vm.swappiness
) keyfi bir öncelik değeri 200 verilir . Anonim sayfalar, varsayılan olarak, 60 ( anon_prio=vm.swappiness
) ile başlar . Bu, varsayılan olarak, öncelik ağırlıklarının adsız sayfaların ( anon_prio=60
, file_prio=200-60=140
) lehine ılımlı durduğu anlamına gelir . Davranış mm/vmscan.c
çekirdek kaynak ağacında tanımlanmıştır .
Bir Verilen vm.swappiness
ait 100
, öncelikler (eşit olacağını file_prio=200-100=100
, anon_prio=100
). Dosya önbelleğindeki sayfaların isimsiz sayfalar lehine çıkarılmasını istemiyorsa, bu bir G / Ç ağır sistemi için anlamlı olacaktır.
Tersine ayarı vm.swappiness
için 0
dosya önbellekten sayfalarda lehine anonim sayfaları kovması Kernel'den önleyecektir. Bu, programlar kendi önbelleklemelerinin çoğunu yaparsa, bazı veritabanlarında olduğu gibi faydalı olabilir. Masaüstü sistemlerde bu etkileşimi artırabilir, ancak olumsuz tarafı, G / Ç performansının büyük olasılıkla etkileyeceğidir.
Varsayılan değer büyük olasılıkla bu iki uç nokta arasında yaklaşık bir orta alan olarak seçilmiştir. Herhangi bir performans parametresinde olduğu gibi, ayarlamalar vm.swappiness
yalnızca bir içgüdü duygusu değil gerçek iş yükleriyle karşılaştırılabilir kıyaslama verilerine dayanmalıdır.