Sunucunun RAM'i dolduğunda servisler çöker, veritabanı yanıt veremez ve SSH bağlantısı bile zaman aşımına uğrayabilir. Swap alanı, RAM dolduğunda disk üzerinde geçici bir bellek alanı oluşturarak bu tür felaketleri önler. Bu rehberde Linux sunucuda swap dosyası oluşturmayı, optimal boyutunu belirlemeyi ve performans ayarlarını öğreneceksin.
Swap Nedir?
Swap, fiziksel RAM dolduğunda işletim sisteminin disk üzerinde kullandığı sanal bellek alanıdır. RAM kadar hızlı değildir, ancak OOM Killer'ın (Out of Memory Killer) servisleri öldürmesini engeller.
- Güvenlik ağı: Ani trafik artışlarında servislerin çökmesini önler
- Hibernation: Sunucu uyku moduna geçerken RAM içeriğini saklar
- Esneklik: Geçici RAM ihtiyacını karşılar
- 1GB RAM → 2GB Swap
- 2GB RAM → 2-4GB Swap
- 4GB RAM → 2-4GB Swap
- 8GB+ RAM → 2-4GB Swap (daha fazlası genelde gereksiz)
Adım 1: Mevcut Swap Durumunu Kontrol Et
# Swap durumunu kontrol et
sudo swapon --show
# Detaylı bellek bilgisi
free -h
# Hiçbir çıktı gelmiyorsa swap alanı yok demektir
Adım 2: Swap Dosyası Oluşturma
# 2GB swap dosyası oluştur
sudo fallocate -l 2G /swapfile
# fallocate çalışmazsa dd kullan
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# Güvenlik için yetkileri ayarla (sadece root okuyabilsin)
sudo chmod 600 /swapfile
# Swap formatında biçimlendir
sudo mkswap /swapfile
# Swap'ı aktifleştir
sudo swapon /swapfile
# Kontrol et
sudo swapon --show
free -h
Adım 3: Kalıcı Hale Getirme
Sunucu yeniden başlatıldığında swap otomatik aktif olsun:
# fstab dosyasına ekle
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Doğrula
cat /etc/fstab | grep swap
Adım 4: Swappiness ve Cache Pressure Ayarı
swappiness değeri, çekirdeğin ne kadar agresif swap kullanacağını belirler (0-100 arası).
# Mevcut değeri kontrol et (varsayılan 60)
cat /proc/sys/vm/swappiness
# VDS/sunucu için önerilen: 10
# RAM yeterliyse swap'a geç ihtiyaç duy
sudo sysctl vm.swappiness=10
# Cache pressure ayarı (varsayılan 100)
sudo sysctl vm.vfs_cache_pressure=50
# Kalıcı hale getir
sudo nano /etc/sysctl.conf
Dosyanın sonuna ekle:
vm.swappiness=10
vm.vfs_cache_pressure=50
💡 RAM Yetersizliği Yaşamak İstemiyorsan
Swap sadece geçici çözümdür, asıl çözüm yeterli RAM'dir. HazalHost VDS sunucularda ihtiyacın kadar RAM seçebilir, paket yükseltmeyle anında artırabilirsin.
Swap Alanını Kaldırma
# Swap'ı devre dışı bırak
sudo swapoff /swapfile
# Dosyayı sil
sudo rm /swapfile
# fstab'dan satırı kaldır
sudo nano /etc/fstab
# /swapfile satırını sil
Swap Boyutunu Değiştirme
# Mevcut swap'ı kapat
sudo swapoff /swapfile
# Yeni boyutla oluştur (4GB)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Doğrula
free -h
🚀 Yeterli RAM ile Swap'a İhtiyaç Duyma
Swap diske yazarak yavaşlatır. Yeterli RAM'e sahip bir sunucu ile projelerini kesintisiz çalıştır. HazalHost Performans VDS paketlerine göz at.
Sonuç
Swap alanı, sunucu için bir güvenlik ağıdır. RAM'in dolduğu anlarda servislerin çökmesini engeller. Ancak swap diske yazdığı için RAM kadar hızlı değildir. Swappiness değerini düşük tutarak (10) sistemin RAM'i tercih etmesini sağla, swap'ı sadece acil durumlar için kullan.
Sık Sorulan Sorular (FAQ)
SSD sunucuda swap kullanmak diski yıpratır mı?
Teorik olarak evet, SSD'lerde yazma ömrü sınırlıdır. Ancak modern SSD'lerin TBW (Total Bytes Written) değerleri çok yüksektir ve normal swap kullanımı disk ömrünü olumsuz etkilemez. NVMe disklerde bu daha da iyi.
Swap partition mı swap file mı kullanmalıyım?
Modern Linux dağıtımlarında swap dosyası daha esnektir. Boyutunu kolayca değiştirebilirsin. Performans farkı minimum düzeydedir.
Swap kullanımı yüksekse ne yapmalıyım?
Swap kullanımının yüksek olması RAM yetersizliğinin işaretidir. Hangi process'in fazla RAM kullandığını top veya htop ile kontrol et. Gerekirse RAM artırımı veya servislerin optimize edilmesi gerekir.