Swap Nedir?
Unix tabanlı işletim sistemlerinde kullanılan fiziksel RAM’e ek olarak daha fazla bellek alanına ihtiyaç duyulursa sunucunun depolama alanı tıpkı RAM gibi kullanılabilir. Takas Alanı olarak adlandırılan bu sanal bellek sayesinde uygulamaların depolaması gereken veriler fiziksel RAM’inize sığmadığında buradaki veriler takas edilir. Yalnız fiziksel RAM’in okuma / yazma hızı sabit disklerden daha yüksek olduğundan sistemde performans kayıpları oluşur. Bu sebeple en doğrusu Takas Alanı’nın gerekli durumlarda kullanımı için ayarlanmasıdır. Takas Alanı’nın sistemin fiziksel RAM miktarının 2 katı kadar olması tavsiye ediliyor ancak bu tamamıyla ihtiyaçlarınıza bağlı.
Swap (Takas) Alanının Oluşturulması
Sisteminizde daha önceden Takas Alanı oluşturulmadıysa ilk olarak aşağıdaki komutla 512 MB’lik dosyayı yaratıyoruz, bu komuttaki ” of=/swapfile” oluşturulacak dosyanın adı olacak:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
Şimdi oluşturduğumuz bu dosyayı Linux’taki Takas Alanı için hazırlıyoruz:
sudo mkswap /swapfile
Yukarıdaki işlemin sonunda karşınıza aşağıdakine benzer bir sonuç gelmeli:
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=411b0215-4a3b-4d94-9f94-4ce2f512a4bd
Son olarak aşağıdaki komut aracılığıyla bu dosyayı aktif hale getiriyoruz:
sudo swapon /swapfile
“swapon -s” komutu aracılığıyla yarattığımız dosyanın güncel durumunu kontrol edebiliriz:
swapon -s
Filename Type Size Used Priority
/swapfile file 524280 0 -1
Swap (Takas) Alanını Kalıcı Yapmak
Bir üstteki aşamada oluşturduğumuz dosya işletim sistemi yeniden başlatılana kadar kullanılabilecektir. Bunun her yeniden başlatmadan sonra aktif olarak kullanımını sağlamak için öncelikle aşağıdaki dosyayı açıyoruz:
vi /etc/fstab
vi’yi daha önceden kullanmayanlar bağlantıdan detaylarını öğrenebilirler. “I” tuşuna basarak “INSERT” moduna geçmemiz sonrada bu dosyanın en alt satırına inerek aşağıdaki satırı farenin sağ tuşuna basarak kopyalamanız gerekiyor. “ESC” tuşu bu moddan çıkmanızı sağlarken klavyeden “:” tuşuna basarak sonrasında da “wq” ile dosyanın kayıt edilmesini sağlayabilirsiniz:
/swapfile swap swap defaults 0 0
Son olarak yarattığımız dosyanın okunabilmesini sağlamak için gerekli yetkileri veriyoruz:
chown root:root /swapfile
chmod 0600 /swapfile
Swappiness Ayarları
İşletim sisteminin çekirdeği olan kernel’in “swap” işlemine ne kadar bağlı kalacağını belirlemek için “swappiness” parametresini ayarlayabilmeniz mümkün. “cat /proc/sys/vm/swappiness” komutuyla güncel değeri görebilirsiniz. 0 ile 100 arasında değer alan bu parametre için 0’ı tercih etmeniz sistemin sadece zorunlu kalması durumunda “swap” yapmasına izin verdirir. CentOS’ta bu değer halihazırda 60 olarak geliyor. Bunu güncellemek için aşağıdaki komutu belirleyeceğiniz değerle çalıştırmanız yeterli olacaktır:
sysctl vm.swappiness=60
“Swappiness” için yukarıdaki gibi değişiklik yaptıktan sonra bunun sistemi yeniden başlattıktan sonra kalıcı hale getirmek istiyorsanız aşağıdaki komutla dosyayı açarak “vm.swappiness=60” şeklinde ayarlamanız gerekiyor.
vi /etc/sysctl.conf
Hafıza Kullanımına Ait Detayları Görüntülemek
Başta yukarıdaki adımlar sonucu oluşturduğumuz Takas Alanı ve sistemimizde bulunan fiziksel RAM’in kullanımına ait detayları “free” komutu aracılığıyla görüntüleyebilirsiniz. Bu komut değerleri size kilobayt cinsinden verirken “-m” opsiyonuyla bunu megabayt’a dönüştürebilirsiniz:
free -m
Hafıza kullanımına ait bilgileri daha detaylı şekilde görmek hatta yönetebilmek için htop‘u sisteme yükleyerek kullanmanızı tavsiye ederim:
yum install htop
Konsola “htop” yazarak açabileceğiniz uygulama ile hangi işlemin ne kadar kaynak tükettiğini görüntüleyebilir ayrıca dilerseniz işlemi sonlandırabilirsiniz. Swap’a ait detaylar burada da listeleniyor: