CentOS 7'de Swap File Oluşturulması ve İnce Ayarları

Sunucumuzun daha stabil ve bellek yetersizliği gibi durumlara daha dayanıklı olması için Swap Dosyasını (Swap File) kullanabiliriz. Swap Dosyası, disk üzerinde oluşturulan bir takas alanıdır. İşletim sistemi bellekte yer kalmadığında veya çok kullanılmayan dosyaları Swap Dosyasına atmaktadır

Bu size düşük bellekli bir sunucuyla daha fazla iş yapmanızı sağlar. Fakat tabi ki bu Swap Dosyası bellek kadar hızlı çalışmayacaktır. Yinede bu alan bizim için gereklidir. Bellek ne kadar fazla olursa olsun güvenlik sebebiyle bir Swap Dosyası oluşturmalıyız.

Swap olmadığı takdirde belleği dolan bir sunucu açık işlemleri kapatmaya çalışır, çoğunlukla da çöker. Böyle durumlarda sunucunun toparlanması uzun vakit alır ve bu süre boyunca sunucuya erişilemez. Bu yazımda size CentOS 7’de Swap File yani Swap Dosyası nasıl oluşturulur ve nasıl optimize edilir onu anlatacağım.

CentOS 7’de Swap Dosyası Oluşturulması

Öncelikle sistemimizde Swap Dosyası olup olmadığını kontrol etmeliyiz. Bunu aşağıdaki komutla yapabiliriz. Eğer komuta cevap olarak bir şey gelmediyse Swap Dosyanız bulunmamaktadır.

swapon -s

Her hangi bir Swap Dosyamız olmadığını gördükten sonra aşağıdaki komut ile Swap Dosyamızı oluşturuyoruz. Burada 4G alanın büyüklüğünü, /swapfile ise Swap Dosyasının ismini vermekte. Bunları değiştirebiliriz.

sudo fallocate -l 4G /swapfile

Bu komut ile de Swap Dosyamızı kontrol edeceğiz.

ls -lh /swapfile

Cevabın aşağıdaki gibi olması gerekmekte.

-rw-r--r-- 1 root root 4.0G Oct 30 11:00 /swapfile

CentOS 7’de Swap Dosyasının Etkinleştirilmesi

Bu aşamada Swap Dosyası oluşturuldu fakat sistemimiz bu dosyanın Swap için kullanılıp kullanılamadığını bilmemekte. Aşağıdaki komutlar ile bu dosyayı Swap için aktifleştireceğiz.

Öncelikle Swap Dosyamızın sadece root hesabı tarafından okunabilmesi için ayarlama yapacağız. Root hesabı dışındaki erişimler ciddi bir güvenlik açığı oluşturacaktır.

sudo chmod 600 /swapfile

Aşağıdaki komut ile ayarlarımızın gerçekleştiğini görebiliriz.

ls -lh /swapfile

Cevabın aşağıdaki gibi olması gerekmekte.

-rw------- 1 root root 4.0G Oct 30 11:00 /swapfile

Swap Dosyamız artık güvenli olduğuna göre aşağıdaki komutlar ile kullanmaya başlayabiliriz.

sudo mkswap /swapfile
sudo swapon /swapfile

Adımların doğruluğunu en baştaki gibi Swap Dosyamız olup olmadığını kontrol ederek görebiliriz.

Swapon -s

Bu sefer cevap boş değil aşağıdaki gibi gelecektir.

/swapfile file 4194300 0 -1

CentOS 7’de Swap Dosyasının Kalıcı Hale Getirilmesi

Swap Dosyamız şimdilik aktif olsa da sunucuyu yeniden başlattığımızda aktif olmayacaktır. Bu yüzden bu alanı kalıcı hale getirmemiz gerekmekte.

WinSCP kullanarak aşağıdaki konuma gidiniz:

/etc/fstab

Bu dosyayı açtıktan sonra dosyanın en altına aşağıdaki alanı girmemiz gerekmekte. Alanı ekledikten sonra kaydedip çıkabiliriz. Bundan sonra sunucu her açıldığında bu dosyayı kontrol edecek ve Swap Dosyasını kullanmaya başlayacaktır.

/swapfile swap swap sw 0 0

CentOS 7’de Swap Dosyası İnce Ayarları

Swappiness

Swappiness parametresi sistemin ne kadar sıklıkla Swap yapacağını belirliyor. Bu parametre 0 ile 100 arasında bir değer alabilir. Bu değer sıfıra yaklaştıkça Swap azalmakta. Bu değer yüze yaklaştıkça ise sistem agresif olarak Swap yapmakta. Sunucunuza ve çalıştıracağınız programlara göre bu ayarı değiştirebilirsiniz. Ben sunucumun belleği 512 MB olduğu için Swappiness parametresini 10 olarak ayarladım. Normalde bu ayar CentOS 7’de 60 olarak gelmekte.

Swappiness ayarı Tuned tarafından bozulduğu için bu ayarı Tuned tarafından da düzeltmemiz gerekiyor.

Öncelikle aşağıdaki dosyayı WinSCP ile açmalıyız.

/etc/sysctl.conf

Açtıktan sonra dosyanın en altına aşağıdaki parametreyi eklemeliyiz. Ekledikten sonra kaydedip çıkabiliriz. Şimdi Tuned ayarlamasını yapmamız gerekmekte.

vm.swappiness = 10

Tuned

Swappiness ayarı Tuned tarafından bozulmakta. Bu bilinen bir hatadır. Bu hatayı düzeltmek için aşağıdaki alanlarda da Swappiness parametresini değiştirmemiz gerekmekte. Bunun için WinSCP kullanarak aşağıdaki üç alanda vm.swappiness = 10 olarak değişiklik yapmalıyız.

/usr/lib/tuned/latency-performance/tuned.conf
/usr/lib/tuned/throughput-performance/tuned.conf
/usr/lib/tuned/virtual-guest/tuned.conf

Cache Pressure

Swap Dosyasıyla ilgili bir diğer ayar ise vfs_cache_pressure parametresidir. Bu parametrenin değeri 0’a yaklaştıkça Swap Dosyasına alınan veriler daha uzun süre tutulur. Bu parametre normalde CentOS 7’de 100 olarak gelmekte. Bu da Swap Dosyasına alınan verilerin kısa süre tutulacağı anlamına gelmekte. Ben Swap Dosyasının da dolmaması için ve diskim SSD olduğu için bunu 100’de bıraktım.

Aşağıdaki dosyayı WinSCP ile açmalıyız.

/etc/sysctl.conf

Açtıktan sonra dosyanın en altına aşağıdaki parametreyi eklemeliyiz. Ekledikten sonra kaydedip çıkabiliriz.

vm.vfs_cache_pressure = 100

Kontrol

Sunucumuzu yeniden başlattıktan sonra ayarlarımızın geçerli olup olmadığını aşağıdaki komutlara gelen cevaplarla görebiliriz. Bir yanlışlık durumunda adımları tekrarlayabilir veya yorum atarak sorabilirsiniz.

cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure

Swappiness parametresini 10 olarak ayarladığımız için üstteki komuta 10, Cache Pressure parametresini de 100 olarak ayarladığımız için alttaki komuta da 100 olarak cevap gelmesi gerekiyor.

Kaynak: 
https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-centos-7
Kaynak: 
https://bugs.centos.org/view.php?id=10045

5/5 - (2 votes)