
Swap Nedir?
Bir zamanlar donanım kaynaklarının sınırlı olduğu dönemlerde swap, Linux sistemlerinde adeta bir hayat kurtarıcıydı. Ancak günümüzde 16, 32 hatta 128 GB RAM’e sahip sistemler bile oldukça yaygın.
Peki bu durumda swap hâlâ gerekli mi?
Kısa cevap: Evet, ama doğru yapılandırıldığında.
Swap Linux çekirdeğinin RAM yetersiz kaldığında disk üzerinde sanal bellek olarak kullandığı alandır.
- Kullanılmayan ya da düşük öncelikli RAM sayfaları swap’e taşınarak aktif işlemler için bellek açılır.
- Swap RAM kadar hızlı değildir. HDD’de çok yavaştır, SSD’de daha iyi olsa da RAM’in hızına yaklaşamaz.
Swap Alanı Türleri
- Swap Bölümü (partition): Kurulum sırasında ayrılır, stabil ve hızlıdır ama boyutu değiştirilemez.
- Swap Dosyası (file): Mevcut dosya sisteminde oluşturulur, esnektir ve gerektiğinde yeniden boyutlandırılabilir.
Swappiness: Swap’in Ne Kadar Kullanılacağını Kim Belirler?
Linux çekirdeği, swap kullanımını vm.swappiness parametresiyle kontrol eder.
Bu değer 0–100 arasında değişir:
| Swappiness Değeri | Davranış |
|---|---|
| 0 | RAM dolmadıkça swap kullanılmaz. |
| 10–30 | Hafif swap kullanımı (genellikle önerilen). |
| 60 (varsayılan) | Dengeli kullanım. |
| 100 | RAM boş olsa bile swap kullanılabilir. |
Önerilen: Sunucular için 10–20, masaüstü sistemler için 30–60.
Geçici test:
sudo sysctl vm.swappiness=10
Kalıcı ayar:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
Swap Neden Hâlâ Gerekli?
- RAM Taşmalarına Karşı Güvence → RAM dolduğunda swap devreye girerek sistemin kilitlenmesini önler.
- Arka Plan Süreçleri İçin Bellek Açma → Uzun süre kullanılmayan süreçler swap’e atılarak aktif işlemlere yer açılır.
- Hibernate (Askıya Alma) Desteği → RAM içeriği swap’e yazılır. Swap olmadan hibernation çalışmaz.
- Sanallaştırma ve Konteynerler → Docker, KVM gibi ortamlarda esneklik sağlar.
Swap Kullanımının Dezavantajları
- Yavaşlık → Özellikle HDD üzerinde swap çok yavaş çalışır.
- Gerçek Zamanlı Sistemlerde Gecikme → Ses/video işleme, HFT (yüksek frekanslı trading) gibi iş yüklerinde gecikmeye yol açar.
- SSD Ömrü → Swap sürekli yazma yaptığından SSD’nin ömrünü kısaltabilir.
- Yanlış Yapılandırma Riski → Aşırı büyük swap, RAM yerine swap kullanımına sebep olur.
- Bellek Sızıntılarını Gizleme → Swap, memory leak sorunlarını maskeleyebilir.
Swap Ne Zaman Kullanılmalı, Ne Zaman Kaçınılmalı?
| Sistem Durumu | Tavsiye |
|---|---|
| 8–16 GB RAM | 2–4 GB swap önerilir. Swappiness: 10–20. |
| 32+ GB RAM | 2–4 GB swap yeterli, düşük swappiness ayarı yapılmalı. |
| Ses/video işleme, HFT | Swap kapatılabilir. |
| HDD + düşük RAM | Swap zorunlu, fakat yavaşlık göze alınmalı. |
| SSD kullanıcıları | Swap sınırlı olmalı, yazma döngüsü izlenmeli. |
Swap Dosyası Oluşturma
Swap dosyası en pratik yöntemdir. Örnek: 4 GB swap oluşturma:
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Kalıcı yapmak için /etc/fstab içine ekleyin:
/swapfile none swap sw 0 0
Durum kontrolü:
free -h
swapon --show
Swap Performansını İzleme
- RAM ve swap durumu:
free -h - Swap in/out oranlarını canlı izleme:
vmstat 1 - Renkli arayüz:
htop - Disk I/O yükü:
iotop
Swap’a Alternatifler (Modern Çözümler)
Swap yerine ya da yanında kullanılabilecek teknolojiler:
ZRAM
- RAM üzerinde sıkıştırılmış swap alanı oluşturur.
- Düşük RAM’li cihazlarda çok verimli.
- CPU yükü artar, ama I/O azalır.
zswap
- Swap’e yazmadan önce RAM’de sayfaları sıkıştırır.
- Disk yazmalarını azaltır.
earlyoom / systemd-oomd
- Bellek bitmeden önce en çok RAM tüketen süreçleri sonlandırır.
- Swap kullanmadan sistem çökmelerinin önüne geçer.
cgroups bellek sınırlamaları
- Docker/LXC ortamlarında uygulamaların swap kullanımını sınırlar.
- Her sistemde küçük de olsa swap bulunmalı.
- Swappiness değeri 10–20 arasında ayarlanmalı.
- Swap dosyası tercih edilmeli (esnek boyutlandırma).
- SSD üzerinde swap kullanılıyorsa, yazma döngüleri izlenmeli.
- Gerçek zamanlı iş yüklerinde swap kapatılmalı veya ZRAM/zswap kullanılmalı.
Swap Linux sistemlerinde hâlâ kritik bir güvenlik ağıdır. Modern sistemlerde RAM çok daha büyük olsa da swap:
- Beklenmedik RAM taşmalarında,
- Konteyner/sanal ortam yönetiminde,
- Hibernation gibi özelliklerde vazgeçilmezdir.
Doğru yapılandırıldığında swap performans kaynağı değil, güvenlik ve stabilite sağlayıcıdır.
Yanlış yapılandırıldığında ise sistemi ciddi şekilde yavaşlatabilir.
Önerim: Swap dosyası + düşük swappiness + gerektiğinde ZRAM/zswap → modern Linux sistemleri için en ideal kombinasyondur.