Küçük sunucuların belleği en kötü anda biter: bir apt upgrade, bir Docker derlemesi, gece yedeklemesi. Swap olmadan çekirdeğin OOM killer'ı bir süreç seçip sonlandırır; çoğu zaman da veritabanınızı. Swap dosyası, bu ani yükselmelere bir çıkış yolu sunan ucuz bir emniyet kemeridir. Beş komut yeterlidir.
1. Neye sahip olduğunuzu kontrol edin
swapon --show
free -h
swapon --show hiçbir şey yazdırmıyorsa henüz swap yoktur.
2. Swap dosyasını oluşturun
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
chmod 600 önemlidir: swap, sırlar dahil bellekteki her şeyin parçalarını içerebilir; bu yüzden yalnızca root okuyabilmelidir. fallocate “operation not supported” hatası verirse bunun yerine dd kullanın:
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. Kalıcı hâle getirin
Bu adım olmadan swap yeniden başlatmada kaybolur:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
4. Swappiness ayarını yapın
Çekirdekten RAM'i tercih etmesini ve swap'ı esas olarak baskı altında kullanmasını isteyin:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system
5. Doğrulayın
swapon --show
free -h
2 GB'lık bir swap aygıtı görmelisiniz ve cat /proc/sys/vm/swappiness 10 yazdırmalıdır.
Ne büyüklükte?
- 1–2 GB RAM'li sunucu: 1–2 GB swap.
- 4 GB veya daha fazla: 1–2 GB güvenlik ağı olarak yine yeterlidir.
Swap'ı “RAM'in iki katı” olarak boyutlandırmayın. Bir sunucuda swap kısa ani yükselmeleri emmek içindir, belleğe sığmayan iş yüklerini çalıştırmak için değil.
Swap'ın çözüm olmadığı durumlar
Birkaç gün izleyin:
vmstat 5
si ve so sütunları saniyede swap'tan okunan ve swap'a yazılan sayfaları gösterir. Ara sıra etkinlik normaldir. Sürekli sıfırdan büyük değerler, sunucunun belleğinin yetmediği ve her şeyin diski beklediği anlamına gelir. Bu noktada çözüm daha fazla RAM'dir: bkz. bir VPS ne kadar RAM'e ihtiyaç duyar. EQVPS'te yeniden kurulum yapmadan daha büyük bir plana geçebilirsiniz; verileriniz olduğu yerde kalır.
Yorumlar
Henüz yorum yok. İlk olun.