Swap Alanı Nedir? Ubuntu ve AlmaLinux'ta Nasıl Eklenir?
Swap alanı, RAM dolduğunda disk alanını geçici bellek olarak kullanan Linux özelliğidir. Kurulum ve swappiness ayarı için adım adım rehber.
Swap Alanı Nedir?
Swap alanı, fiziksel RAM kapasitesi dolduğunda işletim sisteminin disk alanının bir bölümünü sanal bellek olarak kullandığı bir mekanizmadır. RAM'deki aktif olmayan sayfalar (pages) swap alanına taşınarak daha az kullanılan veriler için yer açılır.
Swap olmadan, RAM tamamen dolduğunda Linux çekirdeği OOM Killer (Out of Memory Killer) mekanizmasını devreye sokar ve işlemleri zorla kapatır. Bu durum veritabanları, web sunucuları ve kritik uygulamalar için ciddi sorunlara yol açabilir.
Swap Ne Zaman Gereklidir?
- VPS gibi düşük RAM'li sunucularda (1GB veya 2GB RAM)
- Zaman zaman yoğun bellek tüketen işlemler çalıştırıyorsanız (derleyiciler, analitik scriptler)
- Sistemin OOM durumuna girmesini engellemek için güvenli tampon
- Uyku modu (hibernate) desteği gerekiyorsa
Swap, yetersiz RAM'in kalıcı çözümü değildir. Disk belleği RAM'den 10-100 kat daha yavaştır. Ancak kritik anlarda sistemi ayakta tutmak için hayati önem taşır.
Önerilen Swap Boyutu
| RAM Miktarı | Önerilen Swap | Hibernate Desteği İçin |
|---|---|---|
| 1 GB | 1-2 GB | 2 GB |
| 2 GB | 1-2 GB | 3 GB |
| 4 GB | 2-4 GB | 5 GB |
| 8 GB | 2-4 GB | 9 GB |
| 16+ GB | 0-4 GB | RAM kadar |
Ubuntu'da Swap Dosyası Oluşturma
# Mevcut swap durumunu kontrol et
swapon --show
free -h
# Swap boyutunu belirle (2GB örneği: count=2048 veya bs=1G count=2)
sudo fallocate -l 2G /swapfile
# fallocate çalışmıyorsa alternatif:
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# Güvenlik izinlerini ayarla
sudo chmod 600 /swapfile
# Swap formatına getir
sudo mkswap /swapfile
# Swap'ı etkinleştir
sudo swapon /swapfile
# Etkinleştirildiğini doğrula
swapon --show
free -h
Swap'ı Kalıcı Hale Getirme
sudo nano /etc/fstab
# Dosyanın sonuna şu satırı ekleyin:
/swapfile swap swap defaults 0 0
# Fstab'ı test edin
sudo mount -a
# Hata yoksa ayar doğrudur
AlmaLinux / Rocky Linux'ta Swap Oluşturma
# AlmaLinux üzerinde swap dosyası oluştur
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Kalıcı hale getir
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
# Doğrula
swapon --show
Swap Partition vs Swap Dosyası
Swap, bölüm (partition) veya dosya olarak oluşturulabilir:
- Swap Dosyası: Oluşturması ve boyutunu değiştirmesi daha kolay. Modern Linux'ta performans farkı ihmal edilebilir düzeyde.
- Swap Partition: Klasik yöntem. Sistem kurulumunda disk bölümlendirme sırasında ayrı bir bölüm olarak oluşturulur.
Modern sistemlerde swap dosyası tercih edilmesi önerilir.
swappiness Ayarı
swappiness, kernelin RAM yerine swap'ı ne kadar agresif kullanacağını belirleyen bir parametredir. 0-100 arası değer alır:
0: Swap'ı yalnızca zorunlu durumda kullan10-20: Sunucular için önerilen değer60: Ubuntu varsayılanı100: Swap'ı çok agresif kullan
# Mevcut swappiness değerini görüntüle
cat /proc/sys/vm/swappiness
# Geçici olarak değiştir (reboot ile sıfırlanır)
sudo sysctl vm.swappiness=10
# Kalıcı olarak değiştir
sudo nano /etc/sysctl.conf
# vm.swappiness=10
# veya sysctl.d ile:
echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-swap.conf
sudo sysctl -p /etc/sysctl.d/99-swap.conf
Web sunucuları ve veritabanı sunucuları için swappiness=10 önerilmektedir.
vfs_cache_pressure Ayarı
# Varsayılan 100, sunucular için 50 önerilir
echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.d/99-swap.conf
sudo sysctl -p /etc/sysctl.d/99-swap.conf
SSD'de Swap Kullanımı
SSD üzerinde swap kullanmak tamamen güvenlidir. Modern SSD'ler oldukça dayanıklı olup sınırlı swap kullanımı ömrünü anlamlı ölçüde kısaltmaz. Ancak şunlara dikkat edin:
- swappiness değerini düşük tutun (10 veya daha az) - gereksiz yazma işlemlerini azaltır
- TRIM aktif olduğundan emin olun:
sudo fstrim -v /
Swap'ı Devre Dışı Bırakma
# Swap'ı geçici kapat
sudo swapoff /swapfile
# Swap'ı kalıcı olarak kaldır
sudo swapoff /swapfile
sudo rm /swapfile
# /etc/fstab'daki swap satırını silin
Swap Kullanımını İzleme
# Genel bellek kullanımı
free -h
# Swap kullanan süreçleri listele
for file in /proc/*/status; do
awk '/VmSwap|Name/{printf $2 " " $3 "\n", $0}' $file;
done | sort -k 3 -n -r | head -10
# Gerçek zamanlı izleme
vmstat 1 5
Özet
Swap alanı, özellikle düşük RAM'li sunucular için kritik bir güvenlik ağıdır. Ubuntu ve AlmaLinux'ta fallocate veya dd ile kolayca oluşturulur, /etc/fstab ile kalıcı hale getirilir. swappiness=10 ayarı sunucular için ideal değerdir. SSD'de swap tamamen güvenlidir ancak gereksiz swap yazımını önlemek için swappiness düşük tutulmalıdır.
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!