DigitalOcean 101 – Swap Alanı Yaratmak

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

digitalocean-101-12

free sisteme ait fiziksel RAM ve Swap kullanımını gösteriyor.

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:

digitalocean-101-13

htop ile tüm hafıza bilgilerini rahatlıkla gözlemleyebilir ve yönetebilirsiniz.

  • funda

    swap alanını ben oluşturdum fakat alan olarak 250 mb civarı yaptım. 512ye nasıl çıkarabilirim. teşekkürler şimdiden.

    • Merhaba Funda Hanım,

      Yukarıdaki “Swap (Takas) Alanının Oluşturulması” başlığının altında 512 MB’lık alanı “swapfile” adını kullanarak oluşturmuştuk. Aynı adımları “swapfile” yerine “extraswap” gibi farklı ad ve alan belirterek yaparsanız olacaktır. Son olarak “Swap (Takas) Alanını Kalıcı Yapma” bölümündeki gibi aynı adımları “extraswap” içinde yapmayı unutmayın 🙂