Linux Sunucularda Swap ve ZRAM Yönetimi: Performans, Konfigürasyon ve Örnekler

Linux Sunucularda Swap ve ZRAM Yönetimi: Performans, Konfigürasyon ve Örnekler - Corelux
30 Mar 2026
Paylaş:

Linux Sunucularda Swap ve ZRAM Yönetimi: Performans, Konfigürasyon ve Örnekler

Son Güncelleme: Mart 2026

Swap (takas alanı) ve ZRAM (sıkıştırılmış RAM) modern sunucu altyapılarında bellek yönetimi için kritik rol oynar. Bu makalede VPS / VDS ve kiralık sunucularda swap tipi seçiminden, performans ayarlarına, pratik kurulum örneklerine kadar adım adım ve uygulamalı açıklamalar bulacaksınız.

İçindekiler

Swap Nedir?

Swap, fiziksel belleğin (RAM) yetmediği durumlarda çekirdek tarafından kullanılan disk tabanlı bir bellek uzantısıdır. Linux'ta swap iki temel biçimde olabilir: swap partition (takas bölümü) veya swap file (takas dosyası). Swap, bellek baskısı altında olan sistemlerde kısa süreli koruma sağlar ancak disk I/O nedeniyle RAM kadar hızlı değildir.

Kullanım Amaçları

  • Oturum Koruması: Ani bellek artışlarında servislerin çökmesini engeller.
  • Hibernate (uyku): Masaüstü sistemlerde RAM içeriğini diske yazmak için kullanılır (sunucularda nadir).
  • Önbellek Yönetimi: İnaktif sayfalar swap'e taşınarak aktif süreçlere RAM bırakır.

ZRAM Nedir?

ZRAM, veriyi bir blok cihaz üzerinde sıkıştırarak bellekte saklayan bir çekirdek (kernel) özelliğidir. Bu sayede disk I/O olmadan, RAM içinde sıkıştırılmış alan oluşturulur ve performans avantajı sağlar. Özellikle sınırlı RAM'e sahip VPS ve konteyner ortamlarda sık kullanılır.

Avantajları ve Dezavantajları

  • Avantaj: Disk erişimi yok, düşük gecikme, daha az I/O.
  • Dezavantaj: CPU üzerinde sıkıştırma maliyeti; sıkıştırma verisi küçülmüyorsa fayda azalır.

Swap Tipleri ve Karşılaştırma

Özellik Swap Partition Swap File ZRAM Zswap
Performans İyi (doğrudan blok aygıt) Neredeyse eşit (kernel optimizasyonlarıyla) Çok iyi (disk I/O yok) Orta (RAM üzerinde sıkıştırma + disk yazısı olabilir)
Esneklik Düşük (partition değiştirmek zor) Yüksek (dosya oluşturup silmek kolay) Orta (modül ve yapılandırma gerektirir) Orta
Uygunluk (VPS/Kiralık) Kiralık sunucularda ideal VPS ve konteyner uyumlu VPS için özellikle faydalı VPS ve fiziksel sunucularda kullanılabilir

Swap Oluşturma ve Yönetim

Swap Dosyası Oluşturma (Pratik adımlar)

Aşağıdaki örnek 1G boyutunda swap dosyası oluşturur:

# fallocate -l 1G /swapfile
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
# echo '/swapfile none swap sw 0 0' >> /etc/fstab

Eğer sistemde fallocate yoksa dd kullanılabilir:

# dd if=/dev/zero of=/swapfile bs=1M count=1024

Swap Bölümü Oluşturma

Disk üzerinde kalıcı bir swap bölümü tercih ediliyorsa fdisk veya parted ile partition oluşturup tipini 82 (Linux swap) yapın ve:

# mkswap /dev/sdXn
# swapon /dev/sdXn
# echo '/dev/sdXn none swap sw 0 0' >> /etc/fstab

Swap Kapatma ve Silme

# swapoff /swapfile
# rm /swapfile
# sed -i '/\/swapfile/d' /etc/fstab

ZRAM Kurulum Örnekleri

Aşağıda systemd tabanlı bir modern dağıtımda (Ubuntu, Debian, CentOS/AlmaLinux) zram ayarı örneği bulunmaktadır. Bu örnek 1 CPU çekirdeği başına 512MB zram ayırır (uygulaınıza göre ayarlayın).

# apt install zram-tools -y  # Debian/Ubuntu
# yum install -y zram-swap    # Bazı RHEL türevlerinde paket farklı olabilir

# veya systemd hizmeti oluşturma örneği:
cat > /etc/systemd/system/zram-swap.service <<'EOF'
[Unit]
Description=Create zram swap
After=multi-user.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/sbin/setup-zram.sh

[Install]
WantedBy=multi-user.target
EOF

# setup-zram.sh içinde örnek:
cat > /usr/local/sbin/setup-zram.sh <<'EOF'
#!/bin/bash
modprobe zram
# 2GB toplam: /dev/zram0 boyutu
echo 2G > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon -p 5 /dev/zram0
EOF

# izin verip servisi aktif etme
# chmod +x /usr/local/sbin/setup-zram.sh
# systemctl enable --now zram-swap.service

Not: Paket adları dağıtıma göre değişebilir. Paket yoksa manuel modprobe + sysfs yazma ile de zram etkinleştirilir.

Performans Optimizasyonları (sysctl ve ayarlar)

Swap davranışını kontrol eden en önemli çekirdek ayarları vm.swappiness ve vm.vfs_cache_pressure'dir. Aşağıdaki öneriler tipik web sunucuları ve veritabanı sunucuları içindir; test ederek uygulayın.

  • vm.swappiness: 0-100 arası; daha düşük değer daha az swap kullanımına neden olur. Web sunucuları için genelde 10-30 uygundur.
  • vm.vfs_cache_pressure: inode/dentry önbelleğinin temizlenme eğilimi. Varsayılan 100; veritabanı ve dosya sunucuları için 50-80 tercih edilebilir.
# Geçici uygulama
# sysctl -w vm.swappiness=20
# sysctl -w vm.vfs_cache_pressure=80

# Kalıcı /etc/sysctl.conf veya /etc/sysctl.d/99-custom.conf içine ekleyin
vm.swappiness=20
vm.vfs_cache_pressure=80

Ayrıca swapon komutuyla takas cihazlarının önceliğini (priority) ayarlayabilirsiniz:

# swapon -s    # aktif swapleri listeler
# swapon --priority 100 /dev/zram0

Faydalı Komutlar ve Senaryolar

Kaynak Baskısı Tespit Senaryosu

Bir sunucu aniden yavaşlıyorsa şu adımlar yardımcı olur:

  1. CPU & Bellek: top veya htop ile süreçleri kontrol edin.
  2. Disk I/O: iostat -x 1 3 veya iotop ile I/O bekleme sürelerini inceleyin.
  3. Swap Kullanımı:
    # free -h
    # swapon -s
    
  4. Geçici Çözüm: Gereksiz hizmetleri durdurup sync; echo 3 > /proc/sys/vm/drop_caches ile önbellek temizlenebilir (üretimde dikkatli kullanın).

Pratik Örnek: Küçük VPS için öneri

  • RAM 1-2GB: ZRAM (1-2GB sıkıştırılmış) + küçük 512MB swap dosyası.
  • RAM 4GB üzeri: ZRAM ile birlikte düşük swappiness (10-20) ve gerektiğinde swap partition.
  • Veritabanı sunucuları: Swap kullanımını minimuma indirin; RAM yatırımını tercih edin.

Sıkça Sorulan Sorular

1) Swap olduğunda performans mutlaka düşer mi?

Genel olarak disk tabanlı swap RAM kadar hızlı olmadığı için I/O kaynaklı gecikme oluşur; ancak zram gibi çözümler disk erişimini azaltarak performans etkisini düşürebilir. Kritik uygulamalarda swap kullanımını en aza indirmek en iyisidir.

2) ZRAM her durumda önerilir mi?

ZRAM özellikle düşük RAM'li VPS'lerde fayda sağlar. Ancak sıkıştırma CPU yükü yaratır; CPU sınırlı ve bellek yeterliyse ilave yarar sağlamayabilir. Test ederek karar verin.

3) Swap dosyası mı, swap partition mı tercih etmeliyim?

Kiralık fiziksel sunucularda swap partition daha stabildir. VPS/konteyner ortamında swap dosyası esnek olduğu için pratiktir. Performans farkı çoğu modern çekirdekte küçüktür.

4) Swappiness değeri ne olmalı?

Web sunucuları için genelde 10-30 arası önerilir. Veritabanı sunucuları için daha düşük (ör. 1-10) düşünülmelidir. Kesin değer iş yüküne göre değişir; yük testiyle doğrulayın.

5) ZRAM kurarken nelere dikkat etmeliyim?

Toplam zram boyutunu belirlerken RAM ve beklenen sıkıştırma oranını göz önüne alın. Ayrıca zram için priority ayarı yaparak hangi swap kaynağının önce kullanılacağını kontrol edin.

Sonuç

Sunucularda bellek yönetimi, swap ve zram çözümlerinin doğru kombinasyonu ile performansı ve kararlılığı büyük oranda artırır. Küçük VPS'lerde zram + swap dosyası kombinasyonu, büyük kiralık sunucularda ise donanımsal kaynaklara yatırım ve düşük swappiness en iyi sonucu verebilir. Corelux olarak farklı ihtiyaçlara uygun Türkiye VPS ve Bulut Sunucu seçenekleri sunuyoruz; ayrıca veri güvenliği için yedekleme hizmetlerimiz ile destek sağlayabilirsiniz.

Eğer sunucunuz için uygulamaya özel öneri isterseniz, sunucu tipi (VPS/VDS/kiralık), RAM miktarı, işletim sistemi ve çalıştırdığınız kritik servisleri belirtin; ihtiyaçlarınıza özel adım adım yapılandırma önerisi hazırlayayım.

Yazar

Boran BAR

Chat on WhatsApp