Linux sunucuda swap alanı oluşturma

Linux swap oluşturmanın adım adım eğitimi, uygun boyutun belirlenmesi, swappiness ayarı ve yaygın hataların giderilmesi. RAM yetersizliğinde sunucunun çökmesini önlemek için pratik bir çözüm.

6 dk Güncellendi 22 Aug 2026

Neden Swap Alanına İhtiyacınız Var?

Sunucunuzun RAM belleği dolduğunda, Linux çekirdeğinin iki seçeneği vardır: ya süreçleri Out Of Memory hatasıyla öldürür ya da az kullanılan verilerin bir kısmını diske taşır. Linux swap alanı tam olarak bu senaryo için tasarlanmıştır. Bu alan yardımcı bellek olarak çalışır ve gerçek RAM tükendiğinde sistemin aniden çökmesi yerine performansını korumasını sağlar.

Önemli bir nokta, swap'ın RAM'in yerini tutmadığıdır. Disk üzerindeki okuma/yazma hızı (NVMe bile) RAM'den birkaç kat daha yavaştır. Ancak kritik durumlarda, swap'ın varlığı canlı bir sunucu ile çökmüş bir sunucu arasındaki fark olabilir. Özellikle MySQL, Redis gibi hizmetler veya aniden yoğun trafikle karşılaşan web sunucuları için swap'a sahip olmak hayati bir sigortadır.

Swap Oluşturmak Ne Zaman Gereklidir?

Tüm sunucular swap'a ihtiyaç duymaz, ancak şu durumlarda kesinlikle etkinleştirmelisiniz:

  • Düşük RAM'li sunucular (2GB'den az): Sunucunuzun sınırlı belleği varsa, çökmeyi önlemek için swap gereklidir.
  • Yüksek tüketimli uygulamalar: Veritabanları, sanallaştırma ortamları ve analitik yazılımlar genellikle beklenenden daha fazla belleğe ihtiyaç duyar.
  • Paylaşımlı sunucular: Bir sunucuda birden fazla hizmet çalıştırıyorsanız, RAM tüketimindeki dalgalanmalar kaçınılmazdır.
  • Kritik sistemler: Çalışma süresinin (uptime) kritik olduğu sunucular için swap ekstra bir koruma katmanı ekler.

Buna karşılık, sunucunuzun 16GB üzerinde RAM'i varsa ve bellek tüketiminiz genellikle %70'in altındaysa, muhtemelen swap'a pek ihtiyacınız yoktur. Bu durumda swap'ı etkinleştirmek performansı düşürebilir, çünkü çekirdek az kullanılan verileri diske taşıyabilir ve daha sonra geri getirmek için zaman harcayabilir.

Swap için Uygun Boyutun Belirlenmesi

Swap boyutu iki ana faktöre bağlıdır: RAM miktarı ve iş yükü türü. Eski bir kural, swap'ın RAM'in iki katı olması gerektiğini söylerdi, ancak bu kural modern sistemler için geçerliliğini yitirmiştir. Günümüzde yaygın öneri şu şekildedir:

  • 2GB'den az RAM: RAM'in 2 katı swap (örneğin 1GB RAM için 2GB swap)
  • 2 ile 8GB arası RAM: RAM'in 1 ila 1.5 katı swap
  • 8 ile 64GB arası RAM: RAM'in 0.5 ila 1 katı swap
  • 64GB üzeri RAM: RAM'in 0.25 ila 0.5 katı swap

Örneğin, MySQL ve Nginx çalıştıran 4GB RAM'li bir sunucu 4 ila 6GB swap'a ihtiyaç duyar. Ancak yalnızca hafif bir web uygulaması sunan 32GB RAM'li bir sunucu 8GB swap ile gayet memnun olacaktır.

Hibernation Hakkında Önemli Not

Hazırda bekletme (Hibernation) özelliğini kullanıyorsanız, swap en az RAM boyutunda olmalıdır ki tüm bellek içeriğini saklayabilsin. Ancak sunucularda bu özellik genellikle devre dışıdır, bu yüzden bunu yalnızca masaüstü bilgisayarlarda dikkate alın.

Linux'ta Swap Oluşturma Yöntemleri

Swap oluşturmanın iki ana yöntemi vardır: ayrılmış bir bölüm (partition) veya swap dosyası kullanmak. Dosya yöntemi daha basit ve esnektir ve diski yeniden bölümleme gerektirmez. Bu eğitimde, çoğu sanal sunucu için en iyi seçenek olan dosya yöntemini kullanacağız.

Adım 1: Mevcut Durumu Kontrol Etme

Her şeyden önce, swap'ın mevcut durumunu kontrol edin:

sudo swapon --show
free -h

swapon --show çıktısı boşsa, swap etkin değildir. free -h komutu da tam bellek bilgilerini gösterir.

Adım 2: Swap Dosyası Oluşturma

4GB boyutunda bir swap dosyası oluşturmak için fallocate komutunu kullanın:

sudo fallocate -l 4G /swapfile

Sisteminizde fallocate çalışmazsa (örneğin bazı eski dosya sistemlerinde), dd komutunu kullanın:

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

İkinci komut, toplamda 4GB olan 4096 adet 1MB'lık blok yazar. Swap dosyasını yeterli alana sahip bir diskte oluşturduğunuzdan emin olun. Boş alanı df -h komutuyla kontrol edin.

Adım 3: İzinleri Ayarlama

Swap dosyası hassas veriler içerir, bu yüzden izinleri kısıtlamalısınız:

sudo chmod 600 /swapfile

Bu komut yalnızca root kullanıcısının dosyayı okumasına ve yazmasına izin verir.

Adım 4: Biçimlendirme ve Etkinleştirme

Dosyayı swap olarak biçimlendirin ve ardından etkinleştirin:

sudo mkswap /swapfile
sudo swapon /swapfile

mkswap çıktısı şuna benzer olmalıdır:

Setting up swapspace version 1, size = 4 GiB (4294967296 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Adım 5: Kalıcı Etkinleştirme

Sunucu yeniden başlatıldığında swap'ın otomatik olarak etkinleşmesi için /etc/fstab dosyasını düzenleyin:

sudo nano /etc/fstab

Ve dosyanın sonuna şu satırı ekleyin:

/swapfile none swap sw 0 0

sudo swapon --show ve free -h komutlarıyla durumu tekrar kontrol ederek swap'ın doğru şekilde etkinleştirildiğinden emin olun.

Swappiness Ayarı: Performans Optimizasyonunun Anahtarı

swappiness parametresi, Linux çekirdeğinin swap kullanma eğilimini belirler. Değeri 0 ile 100 arasındadır:

  • 0: Neredeyse hiç swap kullanmaz (yalnızca kritik durumlarda)
  • 10: Veritabanı sunucuları ve gecikmeye duyarlı uygulamalar için önerilen değer
  • 60: Çoğu dağıtımda varsayılan değer (masaüstü için uygun)
  • 100: Swap'ın agresif kullanımı (çok az RAM'i olan sistemler için uygun)

Mevcut değeri görüntülemek için:

cat /proc/sys/vm/swappiness

Geçici değişiklik için (bir sonraki yeniden başlatmaya kadar):

sudo sysctl vm.swappiness=10

Kalıcı değişiklik için /etc/sysctl.conf dosyasını düzenleyin:

sudo nano /etc/sysctl.conf

Ve şu satırı ekleyin:

vm.swappiness=10

Ardından değişiklikleri uygulayın:

sudo sysctl -p

Sunucunuz için Uygun Swappiness Değeri

Sunucunuz bir veritabanı çalıştırıyorsa (MySQL, PostgreSQL), 10 değeri en iyi seçenektir. Bu değer, çekirdeğin mümkün olduğunca RAM kullanmasını ve yalnızca gerektiğinde swap'a başvurmasını sağlar. Genel web sunucuları için 20 ila 30 değeri iyi bir dengedir. Çok az RAM'iniz varsa (1GB'den az), 60 ila 80 değeri çökmeyi önleyebilir, ancak hız düşüşüne neden olur.

Yaygın Hatalar ve Çözümleri

"swapon failed: Invalid argument" Hatası

Bu hata genellikle dosyanın yanlış biçimlendirilmesi veya desteklenmeyen dosya sistemlerinin kullanılması nedeniyle oluşur. mkswap komutunu çalıştırdığınızdan ve dosyanın ext4 veya xfs dosya sisteminde olduğundan emin olun. FAT32 ve NTFS gibi dosya sistemleri swap'ı desteklemez.

"swapon failed: No space left on device" Hatası

Bu hata, diskinizde yeterli alan olmadığını gösterir. df -h ile boş alanı kontrol edin veya daha küçük bir swap dosyası oluşturun.

Sorun: Yeniden Başlatma Sonrası Swap Devre Dışı Kalıyor

Yeniden başlatmanın ardından swap etkin değilse, muhtemelen /etc/fstab satırını yanlış yazmışsınızdır. Dosya yolunun tam olarak doğru olduğundan ve doğru sözdizimini kullandığınızdan emin olun. İçeriği cat /etc/fstab komutuyla kontrol edin.

SSD ve Flash Depolama Hakkında Önemli Not

SSD'de swap'ın yoğun kullanımı diskin ömrünü kısaltabilir, çünkü bellek hücrelerine her yazma işlemi onları yıpratır. Sunucunuzda SSD varsa, swappiness değerini düşük tutmaya çalışın ve swap'ın gerçekten yalnızca gerektiğinde kullanıldığından emin olun. Swap kullanımını izlemek için vmstat 5 komutunu kullanabilir ve si ile so sütunlarını takip edebilirsiniz.

Özet

Linux swap alanı oluşturmak basit ama hayati bir işlemdir ve sunucunuzu ani çökmelerden kurtarabilir. Bu eğitimdeki adımları izleyerek 5 dakikadan kısa sürede sunucunuzda swap'ı etkinleştirebilirsiniz. Uygun boyutun ve swappiness ayarının, swap'ın kendisi kadar önemli olduğunu unutmayın. Sunucunuz yeterli belleğe sahipse ve hafif bir iş yükü çalıştırıyorsa, belki de swap'a hiç ihtiyacınız olmayabilir. Ancak çoğu üretim sunucusu için swap'a sahip olmak akıllıca bir önleyici tedbirdir.

Linux sunucuları için optimize edilmiş yapılandırmaya sahip bir bulut altyapısı arıyorsanız, ServerNet'in sanal ve özel sunucu hizmetleri uygun bir seçenek olabilir. Ancak her durumda, bu eğitimi sahip olduğunuz herhangi bir Linux sunucusunda uygulayabilirsiniz.

Bu sayfa yardımcı oldu mu?