Kısaca: Swap, RAM dolduğunda çekirdeğin az kullanılan bellek sayfalarını taşıdığı disk alanıdır. Linux'ta swap alanı oluşturma işleminin en pratik yolu bir swap dosyası eklemektir: dosyayı dd ile oluşturun, izinlerini 600 yapın, mkswap ile hazırlayın, swapon ile etkinleştirin ve /etc/fstab dosyasına ekleyerek kalıcı hale getirin.
Swap, RAM'in yerini tutmaz; disk bellekten çok daha yavaştır. Ancak az belleğe sahip bir VPS'te ani yük artışlarında işlemlerin bellek yetersizliği nedeniyle sonlandırılmasını önleyen bir güvenlik payı sağlar. Bellek kullanımınızı düzenli takip etmek için sunucu kaynak kullanımı rehberimize de göz atabilirsiniz.
sudo yetkisi gerekir.swapon --show komutu hiçbir şey yazdırmıyorsa etkin swap yoktur. free -h çıktısındaki Swap: satırı da toplam ve kullanılan swap'ı gösterir.df -h /swapon komutuna izin verilmeyebilir. Bu durumda swap sunucu sağlayıcısı tarafından yönetilir.
1. Dosyayı oluşturun. Aşağıdaki komut sıfırlarla dolu 2 GiB'lık (2048 × 1 MiB) bir dosya oluşturur. Boyutu count değeriyle değiştirebilirsiniz:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
fallocate daha hızlıdır, ancak swapon kılavuzuna göre swapon boşluklu (hole) dosyaları reddeder ve fallocate ile ayrılan dosyalar dosya sistemine bağlı olarak bu şekilde algılanabilir. En taşınabilir yöntem dd kullanmaktır. Btrfs kullanıyorsanız swap dosyasının ayrıca copy-on-write özelliği kapalı (nocow) oluşturulması gerekir.
2. İzinleri kısıtlayın. Swap dosyası bellek içeriğini barındırır; yalnızca root okuyabilmelidir:
sudo chmod 600 /swapfile
3. Swap alanı olarak hazırlayın.
sudo mkswap /swapfile
Çıktıda Setting up swapspace version 1, size = 2 GiB benzeri bir satır görürsünüz. mkswap yalnızca alanı hazırlar, etkinleştirmez.
4. Etkinleştirin ve doğrulayın.
sudo swapon /swapfile
swapon --show
free -h
swapon --show çıktısında /swapfile satırını ve TYPE sütununda file değerini görmelisiniz; free -h çıktısındaki Swap: satırı da yeni boyutu gösterir.
swapon ile etkinleştirilen swap yeniden başlatmada kapanır. Kalıcı olması için önce fstab dosyasını yedekleyin, ardından satırı ekleyin:
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab
Satırdaki none bağlama noktasının olmadığını, swap ise türü belirtir. Bir sonraki yeniden başlatmadan sonra swapon --show ile swap'ın otomatik açıldığını kontrol edin.
vm.swappiness, çekirdeğin bellek baskısı altında swap'a ne kadar istekli başvuracağını belirler. Çekirdek belgelerine göre değer 0 ile 200 arasındadır ve varsayılan 60'tır. Mevcut değeri görmek için:
cat /proc/sys/vm/swappiness
Değeri düşürmek, çekirdeğin verileri daha uzun süre RAM'de tutmasını sağlar. Örneğin geçici olarak 10 yapmak için sudo sysctl vm.swappiness=10 komutunu kullanın. Kalıcı yapmak için /etc/sysctl.d/99-swappiness.conf dosyasına vm.swappiness=10 satırını yazın ve sudo sysctl --system çalıştırın. En uygun değer iş yükünüze bağlıdır; değiştirdikten sonra performansı izleyin.
Swap'a artık ihtiyacınız yoksa önce kapatın, sonra /etc/fstab içindeki /swapfile satırını silin ve dosyayı kaldırın:
sudo swapoff /swapfile
sudo rm /swapfile
Swap ekledikten sonra sunucunuzu güvenli tutmak için Linux sunucu sıkılaştırma adımlarına da göz atın. Swapon komutu VPS'inizde çalışmıyorsa destek talebi oluşturarak bize ulaşabilirsiniz.
Herkese uyan tek bir formül yoktur. Swap, RAM'in kısa süreli taşmalarını karşılamak içindir. Az belleğe sahip bir VPS için birkaç GiB çoğu zaman başlangıç için yeterlidir; free -h çıktısında swap kullanımı sürekli yüksekse swap'ı büyütmek yerine RAM'i artırmayı düşünün.
Disk RAM'den çok daha yavaş olduğu için swap'ın yoğun kullanılması performansı düşürür. Ancak swap'ın varlığı tek başına yavaşlık yaratmaz; bellek yetersizliğinde işlemlerin sonlandırılmasına karşı bir güvenlik payıdır.
Bazı dosya sistemlerinde çalışır, ancak swapon kılavuzu fallocate ile ayrılan dosyaların dosya sistemine bağlı olarak boşluklu sayılıp reddedilebileceğini belirtir. En taşınabilir yöntem dd'dir.
Swap dosyası, disk bölümlerini değiştirmeden eklenip boyutlandırılabildiği için VPS'lerde en pratik seçenektir. Ayrı bir swap bölümü de aynı işi görür ancak kurulumu değiştirmek daha zahmetlidir.
Bilgi bankasını detaylı olarak incelediniz, fakat ihtiyacınız olan bilgiyi bulamıyorsanız,
Bir Destek Talebi Oluşturun.