Bilgisayarımızda RAM’in yetersiz kaldığı durumlarda, sistemin çökmemesi için ya da bilgisayarınızı uyku moduna aldığınızda, kaldığı yerden çalışmaya devam edebilmesi için hard disk üzerindeki belirli bir alan sanal bellek olarak kullanılır. Ancak hard disk, RAM ile kıyaslandığında aşırı derecede yavaştır. Bu yavaşlığı daha rahat anlayabilmek için sayısal olarak ifade etmek daha doğru olacak sanırım. RAM, hard disk’ten en az 100 kat (yerine göre 400 kata kadar) daha hızlıdır.
RAM ve hard disk okuma/yazma hız testi karşılaştırması için aşağıdaki videoyu izleyebilirsiniz:
Hal böyle olunca, bilgisayarınız sanal belleği kullanmaya başladığında sistemin çok belirgin bir şekilde yavaşladığını hissedersiniz.
Linux, RAM’in yetersiz kaldığı durumlarda hard disk üzerindeki bir alanı RAM gibi kullanarak olası sistem çökmelerini önler. Hard disk üzerindeki bu alana ‘swap space’ yani ‘takas alanı’ denir.
Bilgisayarınıza ilk defa Linux kurduğunuzda, Sistem Gözlemcisi (System Monitor) ile RAM kullanımına baktığımızda, sistemde boş RAM olmasına rağmen takas alanının kullanıldığını görürüz. Aşağıdaki ekran görüntüsünde, toplam 3.7 GB RAM’e sahip bir sistemde, RAM’in %35’inin boş olmasına rağmen takas alanının kullanıldığı net bir şekilde görülmektedir.
RAM’de (Bellek) hala boş yer varken neden takas alanı kullanılıyor? Bu soru hiç aklınıza takıldı mı?
Eskiden bilgisayarlarda çok az RAM olurdu. 256 MB, 512 MB RAM’e sahip bilgisayarları kullandığımız günleri hatırlayalım.
Linux, düşük donanıma sahip bilgisayarlarda da çalışabildiği için RAM’i az olan bilgisayarlar da göz önünde bulundurularak bazı ayarlar varsayılan olarak belirlenmiş.
Bu yazıda, RAM’i yeterli olan (4 GB’ı yeterli olarak kabul ediyorum) Linux kullanıcılarının, bilgisayarlarını daha verimli kullanabilmeleri için Linux çekirdeğindeki ayarlanabilir bir parametre olan “vm.swappiness” üzerinde duracak ve yapacağımız çok basit bir ayar ile Takas Alanı’nın kullanılmamasını sağlayacağız. Böylelikle Linux, hard disikimizi gereksiz yere RAM gibi kullanmaya çalışmayacağı için bilgisayarımız da yavaşlamayacak.
Öncelikle, kısa da olsa “vm.swappiness” parametresi hakkında bilgilenelim.
Bu parametre, RAM ile Takas Alanı kullanımı arasındaki ilişkiyi yönetir ve varsayılan değeri 60’dır.
vm.swappiness değeri ne kadar büyük olursa, Linux bellek olarak hard diski yani takas alanını o derece daha çok kullanma eğilimine girer. En yüksek değeri 100, en düşük değeri ise 0’dır. vm.swappiness değerinin sıfır olması, bellek olarak yalnızca RAM’in kullanılması gerektiğini, hard diskin sadece ve sadece RAM tamamen dolduğunda, en son çare olarak kullanılması gerektiğini gösterir. vm.swappiness değeri sıfır iken RAM tamamen dolana kadar Takas Alanı asla kullanılmaz.
Bilgisayarınızda yeterince RAM’iniz varsa uçbirim’de (terminal) root hesabı ile;
echo 0 > /proc/sys/vm/swappiness
veya
sysctl -w vm.swappiness=0
komutlarını kullanarak Linux çekirdeğine, sadece RAM’in tamamının dolu olması durumunda takas alanının kullanılması talimatını verebiliriz. Böylelikle normal zamanda takas alanı hiç kullanılmayacağı için bilgisayarımız da yavaşlamamış olacak.
Bu değişiklikleri kalıcı hale getirmek için de /etc/sysctl.d/ klasörünün altında kendi konfigürasyon dosyamızı oluşturup (işletim sisteminize güncelleme aldığınızda varsayılan /etc/sysctl.conf dosyasının üzerine yazılacağı için yaptığıız değişiklikler kaybolmasın diye direkt olarak /etc/sysctl.conf dosyasının içerisine ekleme yapmak iyi bir fikir değil) ve vm.swappiness=0 değerini ekleyebiliriz.
sudo nano /etc/sysctl.d/my-configuration.conf
Aşağıdaki satırı ekleyelim.
vm.swappiness=0
Ctrl + X ile dosyayı kaydedelim.
sudo sysctl --system
komutu ile sistemi reboot etmeden değişiklikleri etkinleştirelim.