21 Ocak 2016

CentOS & RHEL 7 Linux Sunucularda SWAP Alanı Eklemek

CentOS & RHEL 7 Sunucularda SWAP Alanı Eklemek

Swap (Takas Alanı) fiziksel disk üzerinde Ram işlevi görmesi için ayrılmış alandır. Birçok işlemin aynı anda yürütüldüğü durumlarda, bilgisayardaki RAM miktarı yeterli gelmeyebilir. Bu tür durumlarda, Linux işletim sistemi bellekteki bazı sayfaları sabit diske atarak boş yer sağlamaya çalışabilir. Böylece muhtemel tıkanmalara karşı tedbir almış olur.

Bu işlemde sabit disk üzerinde sanki RAM gibi kullanılan disk alanları oluşturulur. Tabii gerçek RAM gibi hızlı bir erişim vermemekle birlikte bazen oldukça kullanışlı olabilir. Takas alanı olarak, donanımsal RAM miktarınızın iki katı kadar SWAP alanı kullanmanız yeterli olacaktır. Örneğin 1 GB fiziksel belleğe sahip bir sunucuda 2 GB Swap alanı oluşturulabilir.

İlk olarak Swap alanımız var mı kontrol edelim;
# swapon -s

Şimdi Bellek miktarını kontrol edelim;
# free -m

Disk boyutunu kontrol edelim;
# df -h

Örnek 4 GB Swap alanı oluşturalım;
# fallocate -l 4G /swapfile
# ls -lh /swapfile

Oluşturduğumuz Swap alanı için gerekli izni verelim,
# chmod 600 /swapfile
# ls -lh /swapfile

İlgili Swap alanımız ve UUID kodu;
# mkswap /swapfile
# swapon /swapfile

Sunucuyu her açtığınızda Swap alanını sistem otomatik olarak dahil etmek istiyorsanız /fstab dosyasına Swap ayarlarını eklemeniz gerek;
# nano /etc/fstab

Dosyayı açtıktan sonra aşağıdaki bilgiyi ekleyin.
/swapfile   swap   swap   sw   0   0

Swap ekleme işlemi tamamlamıştır. Tekrardan Swap alanı ve bellek miktarımızı kontrol edelim;
# swapon -s
# free -m

Ekledikten sonra sunucu yüküne (Load Average) göre Swap devreye girecektir. Swap kullanımını ayarlamak için /proc/sys/vm/swappiness dosyasına müdahale etmeniz gerekir. Bu değeri Default yani varsayılan olarak bırakabilirsiniz. Bellek kullanımınız %60 seviyelerine gelince Swap devreye girecektir.

İlgili dosyayı görüntülediğimiz de 30 değerinin var olduğunu göreceksiniz;
# cat /proc/sys/vm/swappiness

Örnekle bu değeri 10 seviyesine düşürmek istersek aşağıdaki kodu girmeniz yeterli;
# sysctl vm.swappiness=10

Sonra /etc/sysctl.conf dosyası içine gerekli düzenelmeyi ekleyelim;
# nano /etc/sysctl.conf

Dosyayı açtıktan sonra aşağıdaki bilgiyi ekleyin.
vm.swappiness = 10

Kullanılan Swap alanını geçici olarak aşağıdaki komut ile temizleyebiliriz;
# swapoff -a && swapon -a

Kaynaklar
* How To Add Swap on CentOS 7
* How To Add Swap on CentOS 6
* SWAP Space on Existing Partition RHEL 6 & CentOS 6
* Managing SWAP Partitions in RHEL 6 & CentOS 6

Burak AVCI - Update: 21.05.2022