Bir sunucunun fiziksel belleği (RAM) dolduğunda ne olur? İşte swap alanı tam bu noktada devreye girer. Swap, RAM yetersiz kaldığında disk üzerinde geçici bir genişleme alanı sağlar. Bu rehberde swap'ın ne işe yaradığını, nasıl yapılandırıldığını ve performansa etkisini açıklıyoruz.
İlgili içerikler: Linux sunucu komutları · Linux paket yönetimi · KEYDAL VPS
Swap Alanı Nedir?
Swap, fiziksel RAM dolduğunda işletim sisteminin az kullanılan bellek sayfalarını geçici olarak diske taşıdığı alandır. Böylece RAM tamamen dolsa bile süreçler çökmek yerine çalışmaya devam edebilir. Swap; ayrı bir disk bölümü ya da bir swap dosyası olarak tanımlanabilir.
Önemli nokta şudur: disk, RAM'den kat kat yavaştır. Swap bir güvenlik ağıdır, bir RAM yedeği değil. Sürekli swap kullanan bir sunucu, aslında daha fazla RAM'e ihtiyaç duyuyor demektir.
Swap Ne İşe Yarar?
- Bellek taşması koruması: RAM dolduğunda süreçlerin OOM (Out of Memory) ile çökmesini önler.
- Az kullanılan veriyi boşaltma: Uzun süre dokunulmayan bellek sayfalarını diske alıp RAM'i aktif iş için boşaltır.
- Ani yük tamponu: Kısa süreli bellek sıçramalarında sistemin nefes almasını sağlar.
- Hazırda bekletme (hibernate): Masaüstü sistemlerde bellek içeriğini swap'a yazarak kullanılır — sunucularda nadir.
Swap Dosyası Oluşturma
Modern sistemlerde ayrı bölüm yerine swap dosyası kullanmak hem esnek hem pratiktir. 2 GB'lık bir swap dosyası şöyle oluşturulur:
# 2 GB'lik swap dosyası oluştur
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Kalıcı yapmak için /etc/fstab'a ekle
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Swap'ın aktif olduğunu free -h veya swapon --show ile doğrulayabilirsiniz.
swappiness Ayarı
swappiness, çekirdeğin ne kadar istekli swap kullanacağını belirleyen 0-100 arası bir değerdir. Varsayılan genellikle 60'tır. Sunucularda daha düşük bir değer (örneğin 10), sistemin swap'a yalnızca gerçekten gerektiğinde başvurmasını sağlar:
# Anlık değişiklik
sudo sysctl vm.swappiness=10
# Kalıcı yapmak için /etc/sysctl.conf'a ekle
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
Ne Kadar Swap Gerekir?
Kesin bir kural yoktur, ancak yaygın bir yaklaşım şudur: RAM 2 GB'a kadarsa RAM'in iki katı; 2-8 GB arası RAM kadar; 8 GB üzeri sistemlerde 2-4 GB sabit bir değer çoğu sunucu için yeterlidir. Asıl çözüm, sürekli swap kullanımı görüyorsanız RAM'i artırmaktır.
Sıkça Sorulan Sorular
SSD'de swap kullanmak diske zarar verir mi?
Modern SSD'ler çok sayıda yazma döngüsüne dayanır; normal swap kullanımı pratikte sorun yaratmaz. Düşük swappiness değeri zaten gereksiz yazmayı azaltır.
Swap'ı tamamen kapatmalı mıyım?
Bol RAM'iniz olsa bile küçük bir swap, ani yük anlarında güvenlik ağı olarak iş görür. Genelde kapatmak yerine düşük swappiness ile tutmak önerilir.
Swap dosyası mı bölümü mü daha iyi?
Performans farkı modern sistemlerde ihmal edilebilir. Swap dosyası boyutunu değiştirmek kolay olduğu için çoğu senaryoda daha pratiktir.
KEYDAL VPS planlarında projenize uygun RAM ve NVMe SSD ile sunucunuz yük altında kararlı kalır. KEYDAL VPS planlarını inceleyin