Linux İşletim Sisteminde Swap Alanı Artırma
- Alperen ÜLKÜ
- 2 Ara 2021
- 2 dakikada okunur

Bu yazıda basitçe Swap (Takas) Alanı nedir ve nasıl artırılabilir, bundan bahsedeceğiz.
Swap (Takas) Alanı Nedir?
Swap (Takas) Alanı, sabit disk üzerinde işletim sistemi tarafından ayrılmış bir bölümdür. İşlenecek veriler RAM'e sığmadığı zaman bu bölüm RAM gibi kullanılır ve böylece işlemlerin devam etmesi sağlanır. Sabit disklerin veri okuma/yazma hızları RAM’lerden çok daha düşük olduğu için takas alanının kullanılması işlemleri yavaşlatır. Bu sebeple olabildiğince Swap kullanımına düşmemeye çalışılmalıdır. Eğer sunucumuzda Swap kullanımı görülüyorsa bunun sebeplerini araştırmak gerekir aksi takdirde performans kaybı yaşamamız muhtemeldir.
Bir Oracle veritabanı sunucusu için swap alanı yapılandırılacak ise:
512 MB ile 2GB arasında RAM varsa RAM boyutunun 1,5 katı
2 GB ile 16 GB arasında RAM varsa RAM boyutu kadar,
16 GB dan fazla RAM varsa 16GB swap alanı oluşturulmalıdır.
Yine swap kullanımı ile alakalı önemli çekirdek parametresi olan vm.swappines'tan bahsetmek gerekirse swap gerçekleştirilmeden önce boş olan RAM'in yüzdesini temsil eder. Yani bu değeri ne kadar yüksek tutarsak sunucumuzun swap'e düşme ihtimalini o kadar artıracak, ne kadar düşük tutarsak swap'e düşme ihtimalini o kadar düşüreceğiz.
0-100 arasında belirlenebilen bu parametrenin varsayılan değeri 60'tır. "Red Hat Performance Tuning" kılavuzunda belirtildiği gibi veritabanı iş yükleri için daha düşük swappines değeri önerilir. Örneğin, Oracle veritabanları için Red Hat, 10'luk bir swappines değeri önerir. Buna karşılık, MariaDB veritabanları için swappines değeri 1 olarak ayarlanması önerilir.
Swappines değerini geçici olarak ayarlamak için aşağıdaki komutları çalıştırabiliriz.
# echo 10 > /proc/sys/vm/swappiness
veya
# sysctl -w vm.swappiness=10
Swappines değerini kalıcı olarak ayarlamak için '/etc/sysctl.conf' dosyasına aşağıdaki satır eklenmelidir.
# vi /etc/sysctl.conf
vm.swappines = 10
Değişikliği hemen uygulamak için aşağıdaki komut çalıştırılmalıdır.
# sysctl -p
Swap (Takas) Alanı Nasıl Artırılır ?
Swap için ayrılmış alanı aşağıdaki komut ile görebiliriz.
# free -m
Swap için tahsis edeceğimiz alanı kullanacağımız dizinde ihtiyacımız boyutunda bir dosya oluşturulur. Ben bs(BYTES) değerini 1M, count değerini 4096 vererek 4G boyutunda bir dosya oluşturacağım.
# mkdir /swap_file
# dd if=/dev/zero of=/swap_file/swap_file1 bs=1M count=4096
Oluşturduğumuz dosyamızı swap dosyası formatına çeviriyoruz ve kontrol ediyoruz.
# mkswap /swap_file/swap_file1
# file /swap_file/swap_file1
Oluşturulan swap alanı /etc/fstab dosyasına eklenir.
# vi /etc/fstab
/swap_file/swap_file1 swap swap defaults 0 0
Swap dosyasına gerekli hak ataması yapılarak, alan aktif edilir.
# chmod 600 /swap_file/swap_file1
# swapon -a
Tekrar kontrol komutlarını çalıştırdığımızda swap alanımızın artmış olduğunu görmeliyiz.
# swapon -s
# free -m
Kendi sanal sunucumda uyguladığım adımların çıktısı aşağıdaki gibidir.

Gelecek yazılarımızda görüşmek üzere, sağlıcakla kalın...
댓글