Ana içeriğe geç
Kategoriye Dön

Swap Alanı Oluşturma ve Ayarlama Rehberi

Linux'ta swap alanı nedir, swap dosyası oluşturma, swappiness ayarı, swap kullanımını izleme ve performans optimizasyonu için kapsamlı rehber.

Okuma süresi: 9 dk Sunucu Yönetimi
swapsanal bellekswappinesslinuxbellekperformanssunucu

İçindekiler

Swap Alanı Oluşturma ve Ayarlama Rehberi

Swap alanı, fiziksel RAM dolduğunda işletim sisteminin disk üzerinde kullandığı sanal bellek alanıdır. Bellek baskısı altında sistemin çökmesini önler ve uygulamaların çalışmaya devam etmesini sağlar. Bu rehberde swap dosyası oluşturma, yapılandırma ve izleme konularını ele alacağız.

Swap, RAM'in yerini tutmaz; yalnızca acil durum tamponu olarak işlev görür. Sürekli yüksek swap kullanımı, RAM yetersizliğinin işaretidir.

Swap Nedir ve Ne Zaman Gereklidir?

Swap alanı iki şekilde oluşturulabilir:

YöntemAvantajDezavantaj
Swap bölümüDaha hızlıBoyut değiştirilemez
Swap dosyasıEsnek, boyut değiştirilebilirBiraz daha yavaş

Modern sistemlerde swap dosyası tercih edilir çünkü boyutu dinamik olarak değiştirilebilir.

Ne zaman swap gereklidir?

  • RAM 2 GB veya altındaysa
  • Bellek yoğun uygulamalar çalıştırıyorsanız
  • Hibernate (uyku modu) kullanmak istiyorsanız
  • Beklenmedik bellek artışlarına karşı güvenlik tamponu olarak

Mevcut Swap Durumunu Kontrol Etme

hljs bash
# Swap kullanımını göster
swapon --show

# Bellek ve swap özetini göster
free -h

# Detaylı bellek bilgisi
cat /proc/meminfo | grep -i swap

# Swap alanlarını listele
cat /proc/swaps

Swap Dosyası Oluşturma

Adım 1: Swap Dosyası Oluştur

hljs bash
# 2 GB swap dosyası oluştur (dd yöntemi)
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

# veya fallocate ile (daha hızlı)
sudo fallocate -l 2G /swapfile

# Dosya boyutunu doğrula
ls -lh /swapfile

Adım 2: Güvenlik İzinlerini Ayarla

hljs bash
# Sadece root okuyabilsin
sudo chmod 600 /swapfile

# İzinleri doğrula
ls -la /swapfile
# Çıktı: -rw------- 1 root root 2.0G ...

Adım 3: Swap Olarak Biçimlendir

hljs bash
# Swap alanı olarak işaretle
sudo mkswap /swapfile

Adım 4: Swap'ı Etkinleştir

hljs bash
# Swap'ı aktif et
sudo swapon /swapfile

# Doğrula
swapon --show
free -h

Adım 5: Kalıcı Hale Getir

Sunucu yeniden başlatıldığında swap'ın otomatik aktif olması için /etc/fstab'a ekleyin:

hljs bash
# /etc/fstab'a ekle
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# Doğrula
cat /etc/fstab | grep swap

Swap Boyutunu Değiştirme

Mevcut swap dosyasını büyütmek için:

hljs bash
# Swap'ı devre dışı bırak
sudo swapoff /swapfile

# Yeni boyutta dosya oluştur (4 GB)
sudo fallocate -l 4G /swapfile

# Yeniden biçimlendir
sudo mkswap /swapfile

# Yeniden etkinleştir
sudo swapon /swapfile

# Doğrula
free -h

Swappiness Ayarı

Swappiness, çekirdeğin swap kullanma eğilimini belirleyen 0-100 arası bir değerdir:

DeğerDavranış
0Swap'ı mümkün olduğunca az kullan
10Sunucular için önerilen değer
60Linux varsayılanı
100Agresif swap kullanımı
hljs bash
# Mevcut swappiness değerini göster
cat /proc/sys/vm/swappiness

# Geçici olarak değiştir (reboot'ta sıfırlanır)
sudo sysctl vm.swappiness=10

# Kalıcı olarak değiştir
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

# Değişikliği uygula
sudo sysctl -p

Sunucular için swappiness=10 önerilir. Bu değer, RAM dolmadan swap kullanımını minimize eder ve disk I/O'yu azaltır.

Cache Pressure Ayarı

Swappiness ile birlikte vfs_cache_pressure da ayarlanabilir:

hljs bash
# Mevcut değeri göster
cat /proc/sys/vm/vfs_cache_pressure

# Daha az agresif cache temizleme (50 önerilir)
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Swap Kullanımını İzleme

hljs bash
# Anlık bellek ve swap durumu
free -h

# Sürekli izleme (2 saniyede bir)
watch -n 2 free -h

# Hangi işlemler swap kullanıyor?
for file in /proc/*/status; do
  awk '/VmSwap|Name/{printf $2 " " $3 "\n"}' $file
done | sort -k 2 -n -r | head -10

# vmstat ile izleme
vmstat 2 5

# top ile izleme (VIRT, RES, SHR sütunları)
top

vmstat Çıktısını Anlama

hljs bash
vmstat 1 5
# si: saniyede swap'a okunan blok sayısı
# so: saniyede swap'a yazılan blok sayısı
# si ve so sürekli yüksekse bellek yetersiz demektir

Swap'ı Devre Dışı Bırakma

hljs bash
# Geçici olarak devre dışı bırak
sudo swapoff /swapfile

# Kalıcı olarak kaldır
sudo swapoff /swapfile
sudo rm /swapfile
# /etc/fstab'dan swap satırını da silin

Swap'ı devre dışı bırakmadan önce yeterli boş RAM olduğundan emin olun. Aksi takdirde sistem OOM (Out of Memory) hatasıyla karşılaşabilir.

Sonuç

Swap alanı, özellikle sınırlı RAM'e sahip sunucularda sistem kararlılığı için önemlidir. Swap dosyası oluşturmak, swappiness değerini optimize etmek ve swap kullanımını düzenli izlemek, sunucunuzun bellek yönetimini iyileştirir. Ancak swap, RAM yetersizliğinin kalıcı çözümü değildir; yüksek swap kullanımı görüyorsanız RAM yükseltmeyi değerlendirin.